1、EDA中用VHDL语言编程的实验docEDA课程中VHDL的分频程序(1)将 32KHz分成1KHz 占空比百分之五十LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fenpin ISPORT (CLK: IN STD_LOGIC;q: OUT STD_LOGIC);END fenpin;ARCHITECTURE arc OF fenpin IS signal wire:std_logic;BEGIN PROCESS (clk) VARIABLE cnt: INTEGER RANGE 0 TO 31;BEGIN IF clkEVENT AND c
2、lk=1 THEN IF cnt16 THEN cnt:=cnt+1;- if cnt=7 then wire=0;end if; 可以通过这绿色字体修改占空比。 ELSE cnt:=0;- q=1; wire=not wire; END IF; END IF;END PROCESS;q0); ELSIF CLK1EVENT AND CLK1=1 THEN IF EN =1 THEN IF CQI 0); END IF; END IF; END IF; CQ = CQI; END PROCESS; END behave;(3)译码器的程序编写。USE IEEE.STD_LOGIC_1164.A
3、LL;ENTITY DECL7S IS PORT (D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); A:IN STD_LOGIC_VECTOR(2 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); LED7S :OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END DECL7S;ARCHITECTURE one OF DECL7S ISBEGIN B LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL;END CASE;END PR
4、OCESS;END;将上述三个程序主合成一个通过将32KHz分成1KHz,在译码器上显示数字0到9.的主合程序,需进行元件例化。例化程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY KON IS PORT(ain,bin,cin:IN STD_LOGIC; AN:IN STD_LOGIC_VECTOR(2 DOWNTO 0); BN:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); YOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END KON;ARCHITECTURE one OF KON
5、IS COMPONENT fenpin PORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT9 PORT(CLK1,RST,EN:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END COMPONENT; COMPONENT DECL7S PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); A:IN STD_LOGIC_VECTOR(2 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
6、; LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT;SIGNAL e:STD_LOGIC;SIGNAL F:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN u1:fenpin PORT MAP(CLK=ain,Q=e); u2:CNT9 PORT MAP(CLK1=e,RST=bin, EN=cin,CQ=F); u3:DECL7S PORT MAP(D=F,A=AN,LED7S=YOUT);END ARCHITECTURE one;具体操作过程如下: FilenewVHDL点击OK即可,再将分频程序粘贴即可,
7、再运行 在新建工程选中New Project wizard.如下图所示开始新建工程如下图所示注意工程名一定要与实体名一致,如fenpin就与实体名一致。单击Next即可弹出如下图再单击Next即可。按下图选好相应的芯片 再单击Next再单击下图Next再单击Next第二个程序以及第三个程序都只需保存编译即可,不许再将工程,若弹出是否另建一工程,选择“否”即可。再就是最后的元件例化。按第一步过程 建好工程(工程名与实体名一致),再将 例化程序 粘贴到编辑框 再建立顶成实体。单击下图所示的Set as Top-level Entity即可最后进行引脚绑定。如下图所示再下载即可看到现象。还可通过打包的方法得到,不需例化,只需先封装,在连线。