1、1 IF temp=9 THEN ELSE=temp+1; END IF; END PROCESS p1; p2:PROCESS(temp) IF temp9 THEN clk_out=; END PROCESS p2;END struc;2.VHDL语言实现模10计数器异步复位十进制计数器,计数状态为00001001,状态的改变通过q_temp实现,最后将其赋值给q,进行输出。ENTITY bcd24 IS PORT(clk,clr: q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END bcd24;ARCHITECTURE struc OF bcd24 IS SIG
2、NAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0); PROCESS(clk) IF(clk)THEN IF clr=THEN q_temp=0000 ELSIF q_temp=1001=q_temp+1; END PROCESS; qb0000000 end case; end process; cat111110end;4. VHDL语言实现数码管09自动显示系统由三部分组成:分频系数为50M的分频器,模10计数器,数码管显示译码器。分频器将计算机频率降低作为输入,使数字变化周期为1秒。模10计数器用以控制输出10个数字。数码管显示译码器用来下载至实验板上观察结
3、果。ENTITY shiyan24 IS PORT( clk:in std_logic; clear:out std_logic_vector(5 downto 0);END shiyan24;ARCHITECTURE a OF shiyan24 ISsignal tmp:integer range 0 to 24999999;signal clktmp:std_logic;SIGNAL q_temp:p1:process(clear,clk) begin if clear= then tmp elsif clkevent and clk= then if tmp=24999999 then
4、tmpclktmp=not clktmp; else tmp=tmp+1; end if; end process p1;p2:PROCESS(clktmp) IF(clktmpEVENT AND clktmp=p3:process(q_temp) case q_temp isend a;5. VHDL语言实现数码管串行扫描电路用来在六个数码管上显示“111824”ENTITY chuanxing24 ISOUT STD_LOGIC_VECTOR(6 DOWNTO 0); countout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END chuanxing24;ARC
5、HITECTURE a OF chuanxing24 IS signal tmp:integer range 0 to 49999; signal clktmp:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL cnt:INTEGER RANGE 0 TO 5;p0: if tmp=25999 then tmp end process p0; IF(cnt=5)THEN cnt cnt=cnt+1;PROCESS(cnt) IF(clear=)THEN countcount011111
6、q_temp101111 WHEN 2=110111 WHEN 3=111011 WHEN 4=111101 WHEN 5= END CASE; countout=count;END a;6.VHDL语言实现数码管滚动显示电路实现数字串“111824”的循环左滚动,始终点亮6个数码管,左出右进。 library ieee;use ieee.std_logic_unsigned.all;entity gundong24 is clk,clear:out std_logic_vector(5 downto 0) );end gundong24;architecture behave of gund
7、ong24 issignal temp_1:integer range 0 to 24999;signal temp_2:integer range 0 to 499;signal temp_clk_1:signal temp_clk_2:signal m:std_logic_vector(3 downto 0);signal n:signal t: integer range 0 to 5;process(clk,clear) then temp_1 if temp_1=24999 thentemp_clk_1= not temp_clk_1; else=temp_1+1;end proce
8、ss p1;process(temp_clk_1,clear)then temp_2 elsif temp_clk_1event and temp_clk_1= if temp_2=499 then temp_clk_2= not temp_clk_2;=temp_2+1; end process p2;process(clear,temp_clk_2,temp_clk_1) if clearthen m if m=m+1; end process p3;p4: process(m) case m is when q end process p4; p5: process(clear,temp_clk_2,t,m) t elsif temp_clk_2event and temp_clk_2= if t=5 then=t+1; end process p5; p6: process(n,m,t) n=m+t; case n iscat end process p6; end behave;四仿真波形图及波形分析1.分频器仿真波形图(十分频,占空比为10%)2. 分频器仿真波形图(十分频,占空比为50%)3.模10计数器仿真波形图4. 数码显示译码器
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1