西工大数电实验4.docx
文本预览下载声明
实验四:基于quartus II的计时电路设计实验目的1.熟练掌握quartus II软件的使用,使用quartus II设计计时电路2.通过对计时电路的设计熟练掌握与巩固之前学习的内容,并加深对于数电这门学科的了解与认识。二、实验设备1.计算机及 quartus II软件2.数字电路实验箱3.实验开发板 DE0三、实验内容顶层电路设计采用原理图输入方法,各电路模块可以采用原理图或硬件描述语言输入方法实现一个简易计时电路。基本要求:由四个数码管显示的计时电路,低两位按照20进制设计,高两位按照11 进制设计。附加要求1:该计时电路具有校准功能,可以按1Hz频率校准高两位的显示,可以按10Hz 频率校准低两位的显示;2:高两位的进制可以任意设置。(不需要从新编译电路)3:在计数到达某整点值时例如0300的时刻(该值可以根据老师的要求设置),4盏LED灯一起按照10Hz闪烁5秒钟。四、实验过程 原理图 exa4_1输出频率1Hz LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY exa4_1 ISPORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END exa4_1;ARCHITECTURE fwm OF exa4_1 ISCONSTANT m : INTEGER:= SIGNAL tmp :STD_LOGIC;BEGINPROCESS(clk, tmp)VARIABLE cout : INTEGER:=0;BEGINIF clkEVENT AND clk=1 THENcout:=cout+1; IF cout=m THEN tmp=0; ELSIF coutm*2 THEN tmp=1; ELSE cout:=0; END IF;END IF;END PROCESS;clk_out=tmp; END fwm;exa4_2 输出频率10HzLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY exa4_2 ISPORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END exa4_2;ARCHITECTURE fwm OF exa4_2 ISCONSTANT m : INTEGER:= 2500000; SIGNAL tmp :STD_LOGIC;BEGINPROCESS(clk, tmp)VARIABLE cout : INTEGER:=0;BEGINIF clkEVENT AND clk=1 THENcout:=cout+1; IF cout=m THEN tmp=0; ELSIF coutm*2 THEN tmp=1; ELSE cout:=0; END IF;END IF;END PROCESS;clk_out=tmp; END fwm;exa4_3 11进制加法计数器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY exa4_3 IS PORT ( CLK,RST : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END exa4_3;ARCHITECTURE fwm OF exa4_3 IS SIGNAL Q1 : STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINPROCESS(CLK,RST)BEGIN IF RST = 0 THEN Q1=(OTHERS = 0); ELSIF RISING_EDGE(clk) THEN IF Q11010 THEN Q1=Q1+1; ELSE Q1=(OTHERS = 0); END IF; END IF;END PROCESS;DOUT=Q1 ;END fwm;exa4_4 20进制加法计数器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY exa4_4 IS PORT ( CLK,RST : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR (4 DOWNTO 0));END exa4_4;ARCHITECTURE fwm OF exa4_4 IS SIGNAL Q1 : STD_LOGIC_VECTOR (4 DOWNTO 0); BEGINPROCESS(CLK,RST)BEGIN IF RST = 0 THEN Q1=(OTHERS
显示全部