1、use ieee.std_logic_unsigned.all;entity cnt10 isport(clk:in std_logic; clr: cs : qq :buffer std_logic_vector(3 downto 0); co :out std_logic);end cnt10;architecture one of cnt10 isbegin process(clk,clr,cs) begin if (clr=1) then qq=0000; elsif (clkevent and clk= if (cs= if (qq=9) then else =qq+1; end i
2、f; end process;process(qq) co=0 elseend;(2)CNT12的VHDL语言entity cnt12 is in std_logic; buffer std_logic_vector(3 downto 0);end cnt12;architecture one of cnt12 is process(clk) if (clk if (qq=11) then end one;(3)CODE模块的VHDL语言entity code isport( dd : in std_logic_vector(3 downto 0); out std_logic; clr :
3、lock: out std_logic);end code;architecture one of code is process(dd) if (dd=0) then clr if (dd=11) then lock 0 ) and (dd 9 ) then cs if (start=) then next_state=s1; else next_state next_state=s3; when s3 = if (i4=end case;end process com1;com2:process(current_state,bi) enddclrcacb1 cb0cm1cm0cc if (
4、bi=) then endd cb1cb0 else endd cm1 end case;end process com2;reg:process (clk) if clk= and clkevent then current_state=next_state; end process reg;end behv; (3)控制器的仿真时序图 VHDL源程序仿真结果:2、顶层原理图3、顶层原理图仿真结果四、30秒计时器设计1、CNT3、CNT10模块的VHDL语言程序 (1)CNT3的VHDL语言 library ieee;entity cnt3 is clk: clr: cs : qq :buf
5、fer std_logic_vector(3 downto 0) );end cnt3;architecture one of cnt3 is process(clk,clr,cs) begin if (clr= qq0011 elsif (clk if (cs= if (qq=0) then qq else =qq-1; end if; end process; end;2、CNT3、CNT10的仿真结果(1)CNT3的仿真结果(2)CNT10的仿真结果3、计时器原理图设计 4、30秒计时器结果仿真五、实验体会 本次数字电路大型实验让我颇有体会,不仅让我们掌握了VHDL语言和如何构建原理图,
6、而且还让我们学会了MAX+PLUS的使用以及如何进行结果的仿真,让我们学会了硬件电路设计的又一种新的方法,而且能够让我们每个人都亲身进行操作,增强了我们自己的动手能力,也提高了我们的学习能力,以后如果碰到硬件电路的设计,就会轻松的多,就可以用现在学过的知识运用到实践中去,不过在实验中,我也碰到了一些问题,例如,有时VHDL语言编译的时候有错误,有警告等,这时只能一处一处的找错误,有时可能是由于符号引起的错误,要特别注意。有时在构建原理图编译时也会碰到有错误、有警告的问题,这时可能是由于原理图中线没连好的缘故,就要重新回到原理图中修改再编译,有时还要注重原理图排线的美观问题,看起来感觉比较清晰一点。总体上来说,这次实验对我们的帮助很大,以后能够让我们更好地运用到实践中去。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1