实验二:+0-9999的计数器电路的设计EDA实验报告学院电气与信息工程学院(部):专电子信息工程业:学生姓刘玉文名:班电子信息工程1101 级:学11401700430 号:指导教师姓谭会生名:实验二:0~9999的计数器电路的设计1.实验目的(1)进一步熟悉和掌握Quartus II软件的使用。
(2)进一步熟悉和掌握GW48-CK或其他EDA实验开发系统的使用。
(3)学习和掌握VHDL进程语句和元件例化语句的使用。
2.实验内容设计并调试好一个技术范围为0~9999的4位十进制计数器电路CNT9999,并用GW48-CK或其他EDA实验开发系统(可选用的芯片为ispLSI 1032E-PLCC84或EPM7128S-PL84或XCS05/XCS10-PLCC84芯片)进行硬件验证。
3.实验条件(1)开发软件:Quartus II8.0。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EPM7128S-PL84。
4.实验设计(1)系统原理框图为了简化设计并便于显示,本计数器电路CNT9999的设计分为两个层次,其中底层电路包括四个十进制计数器模块CNT10,再由这四个模块按照图所示的原理框图构成顶层电路CNT9999。
CNT9999电路原理框图(2)VHDL程序计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。
1)CNT10的VHDL源程序:--CNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO:OUT STD_LOGIC);END ENTITY CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA)ISBEGINIF CLR='1'THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1'THENIF ENA='1'THENIF CQI="1001"THENCQI<="0000";ELSECQI<=CQI+'1';END IF;END IF;END IF;END PROCESS;PROCESS(CLK,CQI) ISBEGINIF CLK'EVENT AND CLK='1'THENIF CQI<"1001"THENCO<='0';ELSECO<='1';END IF;END IF;END PROCESS;CQ<=CQI;END ARCHITECTURE ART;2)CNT9999的VHDL源程序:--CNT9999.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT9999 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));END ENTITY CNT9999;ARCHITECTURE ART OF CNT9999 ISCOMPONENT CNT10 ISPORT(CLK,CLR,ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO:OUT STD_LOGIC);END COMPONENT CNT10;SIGNAL S0,S1,S2,S3:STD_LOGIC;BEGINU0:CNT10 PORT MAP(CLK,CLR,ENA,DOUT(3 DOWNTO 0),S0);U1:CNT10 PORT MAP(S0,CLR,ENA,DOUT(7 DOWNTO 4),S1);U2:CNT10 PORT MAP(S1,CLR,ENA,DOUT(11 DOWNTO 8),S2);U3:CNT10 PORT MAP(S2,CLR,ENA,DOUT(15 DOWNTO 12),S3);END ARCHITECTURE ART;(3)仿真波形设置本设计包括两个层次,因此先进行底层的十进制计数器CNT10的仿真,再进行顶层CNT9999的仿真。
如图是CNT10仿真输入设置及可能结果估计图。
同理可进行CNT9999仿真输入设置及可能结果估计。
CNT10的时序仿真结果CNT9999的时序仿真结果5.实验总结通过本次实验,对Quartus II软件的基本操作有了更深层次的认识,并能初步熟练和掌握他的运用。
文件名与实体名要相对应,输入源程序时要仔细,时序仿真时,要先保存仿真文件,最后才能对其进行相应地仿真操作。
计数动态扫描显示电路1.实验目的(1)学习Quartus II 8.0 软件的基本使用方法。
(2)学习GW48-CK EDA实验开发系统的基本使用方法。
(3)了解VHDL程序中数据对象、数据类型、顺序语句和并行语句的综合应用。
2.实验内容设计并调试一个由两个4位二进制并行加法器级联而成的8位二进制并行加法器。
3.实验内容(1)开发软件:Quartus II 8.0。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EPM7128S-PL84。
4.实验设计(1)系统原理框图为了简化设计并便于显示,该计数动态扫描显示电路分为两个层次,底层电路包括四个十进制计数器模块CNT10、动态显示控制信号产生模块CTRLS、数据动态显示控制模块DISPLAY等六个模块,再由这六个模块按照图所示的原理图构成顶层电路DTCNT9999。
(2)VHDL程序十进制计数器模块CNT10的VHDL程序见0~9999的计数器电路,其余两个模块的VHDL程序如下:1)CTRLS的VHDL源程序--CTRLS.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRLS ISPORT(CLK:IN STD_LOGIC;SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END ENTITY CTRLS;ARCHITECTURE ART OF CTRLS ISSIGNAL CNT:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(CLK) ISBEGINIF CLK'EVENT AND CLK='1' THENIF CNT="111" THENCNT<="000";ELSECNT<=CNT+'1';END IF;END IF;END PROCESS;SEL<=CNT;END ARCHITECTURE;2)DISPLAY的VHDL源程序:--DISPLAY.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DISPLAY ISPORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATAIN:IN STD_LOGIC_VECTOR(15 DOWNTO 0);COM:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--LEDW:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY;ARCHITECTURE ART OF DISPLAY ISSIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP1:PROCESS(SEL) ISBEGINCASE SEL ISWHEN "000"=>COM<="11111110";WHEN "001"=>COM<="11111101";WHEN "010"=>COM<="11111011";WHEN "011"=>COM<="11110111";WHEN "100"=>COM<="11101111";WHEN "101"=>COM<="11011111";WHEN "110"=>COM<="10111111";WHEN "111"=>COM<="01111111";WHEN OTHERS =>COM<="11111111";END CASE;END PROCESS P1;--LEDW<=SEL;P2:PROCESS(SEL,DATAIN)BEGINCASE SEL ISWHEN "000"=>DATA<=DATAIN(3 DOWNTO 0);WHEN "001"=>DATA<=DATAIN(7 DOWNTO 4);WHEN "010"=>DATA<=DATAIN(11 DOWNTO 8);WHEN "011"=>DATA<=DATAIN(15 DOWNTO 12);WHEN OTHERS=>DATA<="0000";END CASE;CASE DATA ISWHEN "0000"=>SEG<="00111111";WHEN "0001"=>SEG<="00000110";WHEN "0010"=>SEG<="01011011";WHEN "0011"=>SEG<="01001111";WHEN "0100"=>SEG<="01100110";WHEN "0101"=>SEG<="01101101";WHEN "0110"=>SEG<="01111101";WHEN "0111"=>SEG<="00000111";WHEN "1000"=>SEG<="01111111";WHEN "1001"=>SEG<="01101111";WHEN OTHERS=>SEG<="00000000";END CASE;END PROCESS P2;END ARCHITECTURE;(3)仿真波形设置0~9999计数的时序仿真结果5.实验总结经过本次实验,对Quartus II有了更深入的了解,以及学会了更多操作。