资源描述
. .目录一、 课程设计任务:2二、 课程设计原理:2三、 课程设计所需仪器:2四、 课程设计使用的硬件资源及原理框图:2五、 设计过程及操作:31、 FTCTRL测频控制模块:32、 计数器模块:33、 REG32B锁存器模块34、 DECL7S译码器模块45、 分频器模块46、 MUX多路选择器模块。47、 器件连接:48、 操作过程:4六、 设计各个模块代码:51:FTCTRL模块52:CNT_10计数器模块53:REG32B锁存器模块64:DECL7S译码器模块65:any_10 10分频器模块76:any_5 5分频器模块77:any_16 16分频模块88:MUX多路选择器模块99:顶层例化代码9七、总电路:12八、管脚配置:13九、设计结果:14优选. -一、 课程设计任务:设计8位十进制频率计二、 课程设计原理: 根据频率的定义和频率测量的根本原理,测定信号的频率必须有一个脉宽为1秒的对输入信号脉冲计数允许的信号;1秒计数完毕后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清0信号。这清0个信号可以由一个测频控制信号发生器TESTCTL产生,它的设计要,TESTCTL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的EN使能端进展同步控制。当CNT_EN高电平时,允许计数;低电平时停顿计数,并保持其所计的脉冲数。在停顿计数期间,首先需要一个锁存信号LOAD 的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进展清零,为下1秒钟的计数操作作准备。三、 课程设计所需仪器:Altrea DE2-115实验箱;quartusII 12.1;modelsim仿真软件。四、 课程设计使用的硬件资源及原理框图:1、50MHz时钟源两个2、拨动开关3、7段数码管/液晶显示屏五、 设计过程及操作:1、FTCTRL测频控制模块: 频率计的核心控制局部为FTCTRL,该模块的技术是能信号CNT_EN能产生一个1s脉宽的周期信号由于实验箱提供的是50MHz的高频信号,所以需要通过分频器获得1s脉宽信号,并对频率计中的计数器的EN使能端进展同步测控。当CNT_EN高电平时允许计数;低电平时停顿计数,并保持其所设计的脉冲数。在停顿计数期间,首先需要一个锁存信号LOAD的上升沿将计数器在前一秒钟的计数器的计数值锁存进锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。锁存信号后,必须有一清零信号RST_CNT对计数器清零,为下一秒的计数操作做准备。2、 计数器模块: 由于设计要求为8位十进制输出,所以采用的是十进制加法带进位的计数器级联的形式完成计数功能,每个单独的计数器有4位的十进制DOUT3 DOWNTO 0输出和一个进位COUT输出,输入的RST复位端、EN使能端和计数信号CLK端。级联时,将被测信号接入第一个各位的CNT_10计数器的CLK端,并且将每上一个的进位端与下一个的计数器CNT_10的计数CLK相连。3、REG32B锁存器模块 锁存器为32位,包括一个锁存信号LK,32位的输入和输出。4、 DECL7S译码器模块因为每个计数器输出的是二进制数,所以转化到七段数码管上需要通过4-7译码器译码。实验箱的数码管为共阳极。需要8个数码管同时显示,所以需要8个译码器。5、 分频器模块由于实验箱只提供50MHz的信号,所以需要分频得到1Hz的信号以及不同的频率进展测试,所以需要分频器。本设计分频器采用的是5分频器any_5、10分频器any_10和16分频器any_16。6、 MUX多路选择器模块。由于实验箱提供的信号源有限,所以要进展测试,必须使用多路选择器来进展对不同的分频信号进展测试来验证频率计的功能是否完成。本次设计采用的是4选1多路选择器。7、 器件连接:以上各部份器件已经完善。需要将这些器件连接起来完成最终的设计,所以本次设计采取了元件例化,用例化语句将各个器件连接起来。顶层文件见代码段。8、 操作过程: A建立工程 B选择器件: 器件系列(Device Family) Cyclone IV E 器件型号(Available Devices) EP4CE115F29C7 C建立设计文档,new vhdl file,并编辑保存。 D点击按键栏或Processing菜单中的Start compilation 进展编译 E编译正确完成后,点击按键栏或Assignments菜单中的Pin Planner进展引脚锁定 F双击Location栏,在下拉菜单中选择需要锁定的引脚EP4C115F芯片引脚分布详见附录 G再次编译工程 H连接实验箱 I 程序下载 点击按键栏或Tools菜单的Programmer,此时没有添加硬件,点击Hardware Setup选择硬件。在Currently selected hardware下拉菜单中选择USB-Blaster后,点击Close,回到Programmer页面。在Hardware Setup栏中可看到USB-Blaster。注意Mode为缺省的JTAG接口硬件选择完毕。点击Start开场下载。Progress进度完成后下载完毕。六、 设计各个模块代码:1:FTCTRL模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL ISPORT ( CLKK :IN STD_LOGIC; CNT_EN,RST_CNT :OUT STD_LOGIC; LOAD: OUT STD_LOGIC );END FTCTRL;ARCHITECTURE behav of FTCTRL ISSIGNAL DIV2CLK :STD_LOGIC :=0;BEGINPROCESS (CLKK) BEGINIF CLKK EVENT AND CLKK=1 THEN DIV2CLK=NOT DIV2CLK;END IF;END PROCESS;PROCESS (CLKK,DIV2CLK) BEGINIF CLKK=0 AND DIV2CLK=0 THEN RST_CNT=1;ELSE RST_CNT=0;END IF;END PROCESS;LOAD =NOT DIV2CLK;CNT_EN 0);ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN IF Q10); END IF; END IF;END IF;IF Q1=1001 THEN COUT=0; ELSE COUT=1;END IF;DOUT = Q1;END PROCESS;END BHV; 3:REG32B锁存器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LK:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END;ARCHITECTURE BHV OF REG32B IS BEGIN PROCESS(LK,DIN) BEGIN IF LK EVENT AND LK=1 THEN Q LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL; END CASE; END PROCESS; END; 5:any_10 10分频器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity any_10 isport (clk10:in std_logic; k:out std_logic);end;architecture bhv of any_10 is signal s : std_logic; signal c : std_logic_vector(3 downto 0);beginprocess(clk10,c)beginif rising_edge(clk10) thenif (c=1001) then c=0000; else c=c+1;end if;if (c=0101) then s=not s;elsif(c=0000) then s=not s;end if;end if;end process;k=s;end bhv;6:any_5 5分频器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ANY_5 isport(clk5:in std_logic; kf:out std_logic);end;architecture bhv of ANY_5 is signal c1,c2: std_logic_vector(2 downto 0); signal m1,m2: std_logic;beginprocess(clk5,c1) begin if rising_edge(clk5) then if(c1=100) then c1=000; else c1=c1+1;end if; if(c1=001) then m1=not m1;elsif(c1=011) then m1=not m1;end if; end if;end process;process(clk5,c2) begin if falling_edge(clk5) then if(c2=100) then c2=000;else c2=c2+1;end if; if(c2=001) then m2=not m2;elsif(c2=011) then m2=not m2;end if; end if;end process;kf=m1 or m2;end bhv;7:any_16 16分频模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity any_16 is port( clk_in : in std_logic; clk_out : out std_logic);end entity any_16; architecture div1 of any_16 is signal clk_outQ : std_logic ; signal coutQ : std_logic_vector (15 downto 0);beginprocess(clk_in) begin if clk_inevent and clk_in = 1 then if coutQ 15 then coutQ = coutQ + 1; else coutQ 0); end if; end if; end process;process(coutQ) begin if coutQ 16/2 then clk_outQ = 0; else clk_outQ = 1; end if; end process;clk_out = clk_outQ;end architecture div1; 8:MUX多路选择器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity MUX is port(AIN,BIN,CIN,DIN,S0,S1 : in std_logic; Y : out std_logic);end entity MUX; architecture A of MUX is signal S : std_logic_vector (1 downto 0);beginS Y Y Y YC8,CNT_EN=NE,RST_CNT=NR,LOAD=NL);U2:REG32B PORT MAP(LK=NL, DIN(3 DOWNTO 0)=N1,DIN(7 DOWNTO 4)=N2, DIN(11 DOWNTO 8)=N3,DIN(15 DOWNTO 12)=N4, DIN(19 DOWNTO 16)=N5,DIN(23 DOWNTO 20)=N6, DIN(27 DOWNTO 24)=N7,DIN(31 DOWNTO 28)=N8, Q(3 DOWNTO 0)=L1,Q(7 DOWNTO 4)=L2, Q(11 DOWNTO 8)=L3,Q(15 DOWNTO 12)=L4, Q(19 DOWNTO 16)=L5,Q(23 DOWNTO 20)=L6, Q(27 DOWNTO 24)=L7,Q(31 DOWNTO 28)=L8);U3:CNT10 PORT MAP(RST=NR,EN=NE,CLK=YY,DOUT=N1,COUT=M1);-U4:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M1,DOUT=N2,COUT=M2);U5:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M2,DOUT=N3,COUT=M3);U6:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M3,DOUT=N4,COUT=M4);U7:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M4,DOUT=N5,COUT=M5);U8:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M5,DOUT=N6,COUT=M6);U9:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M6,DOUT=N7,COUT=M7);U10:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M7,DOUT=N8);U11:DECL7S PORT MAP(A = L1,LED7S=QOUT(6 DOWNTO 0);U12:DECL7S PORT MAP(A = L2,LED7S=QOUT(13 DOWNTO 7);U13:DECL7S PORT MAP(A = L3,LED7S=QOUT(20 DOWNTO 14);U14:DECL7S PORT MAP(A = L4,LED7S=QOUT(27 DOWNTO 21);U15:DECL7S PORT MAP(A = L5,LED7S=QOUT(34 DOWNTO 28);U16:DECL7S PORT MAP(A = L6,LED7S=QOUT(41 DOWNTO 35);U17:DECL7S PORT MAP(A = L7,LED7S=QOUT(48 DOWNTO 42);U18:DECL7S PORT MAP(A = L8,LED7S=QOUT(55 DOWNTO 49);U19:any_10 PORT MAP(CLK,C1);U20:any_10 PORT MAP(C1,C2);U21:any_10 PORT MAP(C2,C3);U22:any_10 PORT MAP(C3,C4);U23:any_10 PORT MAP(C4,C5);U24:any_10 PORT MAP(C5,C6);U25:any_10 PORT MAP(C6,C7);U26:any_5 PORT MAP(C7,C8);U27:MUX PORT MAP(Y1,Y2,Y3,FFIN,S0,S1,YY);U28:any_5 PORT MAP(FFIN,Y1);U29:any_16 PORT MAP(FFIN,Y2);U30:any_10 PORT MAP(FFIN,Y3);END ARCHITECTURE;七、总电路:1234八、 管脚配置:- .word.zl. -CLOCK2_50 Input PIN_AG14 CLKCLOCK3_50 Input PIN_AG15 FFINHEX06 Output PIN_H22 QOUT6HEX05 Output PIN_J22 QOUT5HEX04 Output PIN_L25 QOUT4HEX03 Output PIN_L26 QOUT3HEX02 Output PIN_E17 QOUT2HEX01 Output PIN_F22 QOUT1HEX00 Output PIN_G18 QOUT0HEX16 Output PIN_U24 QOUT13HEX15 Output PIN_U23 QOUT12HEX14 Output PIN_W25 QOUT11HEX13 Output PIN_W22 QOUT10HEX12 Output PIN_W21 QOUT9HEX11 Output PIN_Y22 QOUT8HEX10 Output PIN_M24 QOUT7HEX26 Output PIN_W28 QOUT20HEX25 Output PIN_W27 QOUT19HEX24 Output PIN_Y26 QOUT18HEX23 Output PIN_W26 QOUT17HEX22 Output PIN_Y25 QOUT16HEX21 Output PIN_AA26 QOUT15HEX20 Output PIN_AA25 QOUT14HEX36 Output PIN_Y19 QOUT27HEX35 Output PIN_AF23 QOUT26HEX34 Output PIN_AD24 QOUT25HEX33 Output PIN_AA21 QOUT24HEX32 Output PIN_AB20 QOUT23HEX31 Output PIN_U21 QOUT22HEX30 Output PIN_V21 QOUT21HEX46 Output PIN_AE18 QOUT34HEX45 Output PIN_AF19 QOUT33HEX44 Output PIN_AE19 QOUT32HEX43 Output PIN_AH21 QOUT31HEX42 Output PIN_AG21 QOUT30HEX41 Output PIN_AA19 QOUT29HEX40 Output PIN_AB19 QOUT28HEX56 Output PIN_AH18 QOUT41HEX55 Output PIN_AF18 QOUT40HEX54 Output PIN_AG19 QOUT39HEX53 Output PIN_AH19 QOUT38HEX52 Output PIN_AB18 QOUT37HEX51 Output PIN_AC18 QOUT36HEX50 Output PIN_AD18 QOUT35HEX66 Output PIN_AC17 QOUT48HEX65 Output PIN_AA15 QOUT47HEX64 Output PIN_AB15 QOUT46HEX63 Output PIN_AB17 QOUT45HEX62 Output PIN_AA16 QOUT44HEX61 Output PIN_AB16 QOUT43HEX60 Output PIN_AA17 QOUT42HEX76 Output PIN_AA14 QOUT55HEX75 Output PIN_AG18 QOUT54HEX74 Output PIN_AF17 QOUT53HEX73 Output PIN_AH17 QOUT52HEX72 Output PIN_AG17 QOUT51HEX71 Output PIN_AE17 QOUT50HEX70 Output PIN_AD17 QOUT49SW17 Input PIN_Y23 S0SW16 Input PIN_Y24 S1- .word.zl. -九、 设计结果:50MHz信号10分频50MHz信号16分频50Mhz信号- .word.zl
展开阅读全文