频率计课程设计报告
- 格式:doc
- 大小:2.43 MB
- 文档页数:15
《可编程逻辑器件及其应用》课程设计
——————数字频率计设计
总结报告
班级:自动1101
学号
111401101灿
111401102斐汉
111401218 东
指导老师:于卫 管旗
日期:2013/12/23
大学信息工程学院
目录
1 技术指标要求
2 总体方案设计(说明:方框图、组成、各部分作用、连接关系、工作原理)
3 可编程器件逻辑功能设计
(1)可编程器件简介
(2)顶层设计(顶层方框图、组成、各部分作用、连接关系、工作原理、顶层原理图、仿真结果图、器件选择、管脚锁定、下载测试 )
4 硬件制作及调试情况
5设计结果情况
6 心得体会
器件清单
参考文献
1 技术指标要求
1.设计1个6位数字频率计系统,频率围:1—999999Hz,分辨率:1Hz;
2.输入测试信号为正负对称的幅度为1V—5V之间可调的正弦波、脉冲波、三角波;
3.用动态扫描技术实现6位数字显示。
2 总体方案设计
根据要求,设计出总体方案,画出系统总体框图,见图所示。
图10.1 频率计系统总体框图
各部分的组成及作用如下:
(1) CPLD器件:接收被测频率信号、1Hz标准信号和动态扫描信号,发出频率数字信号;
(2) 转换电路: 将正负对称的幅度为1V—5V之间可调的正弦波、脉冲波、三角波转换为同频率的TTL脉冲波形;
(3) 反相驱动电路:加大由转换电路输出的TTL脉冲波形的驱动能力;
(4) 动态扫描显示电路:用数码管显示输出的频率值;
(5) 标准脉冲电路:产生1Hz的标准脉冲信号和2048Hz的动态扫描信号;
(6) NE555 Hz电路和单位显示亮熄电路:使“Hz”单位一亮一熄;
(7) 直流稳压电源:给各部分电路提供电源。
3 可编程器件逻辑功能设计
(1)可编程器件简介
EPM7128是可编程的大规模逻辑器件,为ALTERA公司的MAX7000系列产品,具有高阻抗、电可擦等特点,可用门单元为2500个,管脚间最大延迟为5ns,工作电压为+5V。
(2)顶层设计(顶层方框图、组成、各部分作用、连接关系、工作原理、顶层原理图、仿真结果图、器件选择、管脚锁定、下载测试 )
顶层原理图
其中:TESTCTL模块为测频控制器、T10模块为10进制加法计数器、 REG4B为锁存器、动态扫描软件模块包括:BCD6模块(6进制加法计数器)、MUX461模块(数据选择器)、74138模块(3-8译码)和DECL7S模块(七段译码)。本方案用动态扫描显示结果.也可直接将结果静态显示出来(为每一位计数器输出配译码和显示)。
A 测频模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TESTCTL IS
PORT(CLKK:IN STD_LOGIC;
T,RST,LOAD:OUT STD_LOGIC);
END TESTCTL;
ARCHITECTURE ONE OF TESTCTL IS
SIGNAL DIV2CLK: STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IF CLKK'EVENT AND CLKK='1' THEN
DIV2CLK<=NOT DIV2CLK;END IF;END PROCESS;
PROCESS(CLKK,DIV2CLK)
BEGIN
IF CLKK='0' AND DIV2CLK='0' THEN RST<='1';ELSE RST<='0'; END IF; END PROCESS;
LOAD<=NOT DIV2CLK; T<=DIV2CLK; END ONE;
仿真图
B 计数模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY T10 IS
PORT(CLK,CLR,ENA:IN STD_LOGIC;
CQ:OUT INTEGER RANGE 0 TO 10;
T:OUT STD_LOGIC);
END ENTITY T10;
ARCHITECTURE BEHAV OF T10 IS
SIGNAL CQI:INTEGER RANGE 0 TO 10;
BEGIN
PROCESS(CLK,CLR,ENA)
BEGIN
IF CLR='1'THEN CQI<=0;
ELSIF CLK'EVENT AND CLK='1' THEN
IF ENA='1'THEN IF CQI<9 THEN CQI<=CQI+1;
ELSE CQI<=0;
END IF;END IF;END IF;
END PROCESS;
PROCESS(CQI)
BEGIN
IF CQI=9 THEN T<='1';
ELSE T<='0';
END IF;
END PROCESS;
CQ<=CQI;
END BEHAV;
仿真图
C 锁存模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY REG4B IS
PORT(LOAD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END ENTITY REG4B;
ARCHITECTURE BEHAVE OF REG4B IS
BEGIN
PROCESS(LOAD,DIN)
BEGIN
IF LOAD'EVENT AND LOAD='1'THEN DOUT<=DIN;
END IF;END PROCESS;END BEHAVE;
仿真图
D 六进制加法计数器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY BCD6 IS
PORT(CLK,CLR:IN STD_LOGIC;
COUNT:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0));
END BCD6;
ARCHITECTURE BEHAVIOR OF BCD6 IS
BEGIN PROCESS(CLK)
BEGIN
IF(CLR='0')THEN
COUNT<="000";
ELSE
IF(RISING_EDGE(CLK))THEN
IF(COUNT="101")THEN
COUNT<="000";
ELSE
COUNT<=COUNT+1;
END IF;END IF;END IF;
END PROCESS;END BEHAVIOR;
仿真图
E 4个6选1数据选择器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX441 IS PORT
(A,B,C,D,E,F:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
S:IN STD_LOGIC_VECTOR(2 DOWNTO 0); X:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END ENTITY MUX441;
ARCHITECTURE ARC OF MUX441 IS
BEGIN
MUX461:PROCESS(A,B,C,D,S)
BEGIN
IF S="000"THEN X<=A;
ELSIF S="001"THEN X<=B;
ELSIF S="010"THEN X<=C;
ELSIF S="011"THEN X<=D;
ELSIF S="100"THEN X<=E;
ELSIF S="101"THEN X<=F;
ELSIF S="110"THEN X<=E;
ELSIF S="111"THEN X<=F;
END IF;END PROCESS MUX461;END ARC;
仿真图
F 7段译码器模块
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY DECL7S IS
PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END DECL7S;
ARCHITECTURE ONE OF DECL7S IS
BEGIN
PROCESS(A)
BEGIN
CASE A IS
WHEN"0000"=>LED7S<="0111111";
WHEN"0001"=>LED7S<="0000110";
WHEN"0010"=>LED7S<="1011011";
WHEN"0011"=>LED7S<="1001111";
WHEN"0100"=>LED7S<="1100110";
WHEN"0101"=>LED7S<="1101101";
WHEN"0110"=>LED7S<="1111101";
WHEN"0111"=>LED7S<="0000111";
WHEN"1000"=>LED7S<="1111111";
WHEN"1001"=>LED7S<="1101111";
WHEN OTHERS=>NULL;
END CASE;