频率计课程设计报告

  • 格式: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;