基于QUARTUS的EDA课程设计数字频率计的仿真
更新时间:2024-01-08 19:43:01 阅读量: 教育文库 文档下载
成 绩 评 定 表
学生姓名 专 业 评 语 组长签字: 班级学号 课程设计题目 成绩 日期
201年月日
课程设计任务书
学 院 学生姓名 课程设计题目 实践教学要求与任务: 专 业 班级学号 一、内容及要求: 利用所学的EDA设计方法设计数字频率计,熟练使用使用QUARTUSII应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。 1调试底层模块,并时序仿真。 2.设计顶层模块,并时序仿真。 3.撰写课程设计报告,设计报告要求及格式见附件。 二、功能要求: 设计一个思维十进制的数字频率计。要求具有以下功能; (1) 测量范围:1HZ~10HZ。 (2) 测量误差≤1/ (3) 响应时间≤15s。 (4) 显示时间不小于1s。 (5) 具有记忆显示的功能。即在测量过程中不刷新数据。等数据过程结束后才显示测量结果。给出待测信号的频率值。并保存到下一次测量结束。 包括时基产生与测评时序控制电路模块。以及待测信号脉冲计数电路模块和锁存与译码显示控制电路。 工作计划与进度安排: 课程设计时间为10天(2周) 1、调研、查资料1天。 2、总体方案设计2天。 3、代码设计与调试5天。 4、撰写报告1天。 5、验收1天。 指导教师: 201年月日 专业负责人: 201年月日 学院教学副院长: 201年月日
目录
1.设计要求 ............................................................................................................................ 2 2、设计目的 ......................................................................................................................... 2 3.总体设计思路及解决方案 .................................................................................. 2
3.1相关知识 .................................................................................................................... 2 3.3、设计思路及解决方案 ..................................................................................... 4
4.分层次方案设计及代码描述 ............................................................................ 5
4.1.底层程序源码 ..................................................................................................... 5 4.2顶层程序源码 ....................................................................................................... 10
5.各模块的时序仿真结果 ...................................................................................... 12 6.设计心得 .......................................................................................................................... 15
1
数字频率计课程设计
1.设计要求
设计一个四位十进制的数字频率计。要求具有以下功能: (1)测量范围:1HZ~10HZ。 (2) 测量误差≤1/ (3)响应时间≤15s。 (4)显示时间不小于1s。
(5)具有记忆显示的功能。即在测量过程中不刷新数据。等数据过 程结束后才显示测量结果。给出待测信号的频率值。并保存到 下一次测量结束。
(6)包括时基产生与测评时序控制电路模块。以及待测信号脉冲计
数电路模块和锁存与译码显示控制电路。
2、设计目的
通过综合性课程设计题目的完成过程,运用所学EDA知识,解决生活中遇到的实际问题,达到活学活用,所学为所用的目的,进一步理解EDA的学习目的,提高实际应用水平。
本次设计的数字频率计具有精度高、使用方便、测量迅速、便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字频率计主要包括时基产生与测评时序控制电路模块、待测信号脉冲计数电路、译码显示与锁存控制电路模块。
3.总体设计思路及解决方案
3.1相关知识
Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
2
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。
此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。
Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
3.2 设计思路及原理图
数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器.它的基本功能是测量方波信号及其他各种单位时间内变化的物理量。本数字频率计采用自顶向下的设计思想,通过闸门提供的1s闸门时间对被测信号进行计数及测出的被测信号的频率,测出的频率再通过译码器译码后输出给显示器显示。根据系统设计的要求,数字频率计的电路原理框图如下:
3
图3.1 数字频率计的电路原理框图
3.3、设计思路及解决方案
设计方案自顶向下设计,底层模块分时基产生与测评时序控制电路模块、待测信号脉冲计数电路模块、译码显示与锁存控制电路模块。 (1)时基产生与测评时序控制电路模块:
设计频率记得关键是设计一个测频率控制信号发生器(即时基产生与测评时序控制电路模块),产生测量频率 控制时序。控制时钟信号clk取为1Hz,二分频后即可产生一个脉宽为1s的时钟control-en ,以此作为计数闸门信号。当control-en为高电平时,允许计数;当control-en的下降沿时,应产生一个锁存信号,将计数值保存起来;锁存数据后,在下一个control-en上升沿到来之前对计数器清零,为下次计数做准备。 (2)待测信号脉冲计数电路模块
待测信号脉冲计数电路模块就是计数器,计数器以待测信号作为时钟,在清零信号clr到来时,异步清零;使能信号en为高电平时允许计数,为低电平时禁止计数。
(3)锁存与译码显示控制电路模块
锁存器在control-en下降沿到来时,将计数器的计数值锁存,这样就不会因为周期性的清零信号而不断闪烁了。
4
译码显示电路将计数器测得的BCD码数字转换为七段晶体管LED显示(0——9),显示出十进制的数字结果。
4.分层次方案设计及代码描述
4.1.底层程序源码
1、时基产生与测频时序控制电路模块的VHDL源程序
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity control is
port (clk:in std_logic; --定义输入 rst,ena: out std_logic); --定义输出 end control;
architecture behv of control is begin
process (clk) --clk为敏感信号 variable cqi :std_logic_vector(2 downto 0); begin
if clk'event and clk='1' then --时钟上升沿 if cqi <1 then cqi:=cqi+1;ena<='1';rst<='0'; elsif cqi=1 then cqi :=(others =>'0'); ena<='0';rst<='1'; end if; end if;
end process; --进程结束 end behv;
5
2、待测信号脉冲计数电路模块的VHDL源程序
(1)10进制计数器:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt10 is
port (rst,fx,ena:in std_logic; --rst,fx,ena为输入端口 cout: out std_logic;
outy :out std_logic_vector(3 downto 0)); end cnt10;
architecture behv of cnt10 is begin
process (rst,ena,fx) --rst,fx,ena为敏感信号 variable cqi :std_logic_vector(3 downto 0); begin
if rst='1' then cqi :=(others =>'0'); --执行清零 elsif fx'event and fx='1' then --fx上升沿 if ena ='1' then --如果使能信号为1 if cqi < 9 then cqi:=cqi+1;cout<='0'; elsif cqi=9 then cqi :=(others =>'0'); cout<='1'; end if;
elsif ena='0' then cqi:=(others =>'0'); --使能信号为0 end if; end if; outy <=cqi;
6
end process; --进程结束 end behv;
(2)4位10进计数器:
library ieee;
use ieee.std_logic_1164.all; entity cnt10_4 is
port(fx,rst,ena:in std_logic; --定义输入
d:out std_logic_vector(15 downto 0)); --定义输出
end entity;
architecture one of cnt10_4 is component cnt10
port (rst,fx,ena:in std_logic; cout: out std_logic;
outy :out std_logic_vector(3 downto 0)); end component;
signal e:std_logic_vector(3 downto 0); begin --元件例化
u1:cnt10 port map(fx=>fx,rst=>rst,ena=>ena,cout=>e(0),outy=>d(3 downto 0));
u2:cnt10 port map(fx=>e(0),rst=>rst,ena=>ena,cout=>e(1),outy=>d(7 downto 4));
u3:cnt10 port map(fx=>e(1),rst=>rst,ena=>ena,cout=>e(2),outy=>d(11 downto 8));
7
u4:cnt10 port map(fx=>e(2),rst=>rst,ena=>ena,cout=>e(3),outy=>d(15 downto 12));
end architecture one;
(3)锁存器的VHDL源程序
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity latch4 is
port(d:in std_logic_vector(15 downto 0); --d,ena,clk为锁存器输入 ena,clk:in std_logic;
q:out std_logic_vector(15 downto 0)); --q为锁存器输出 end latch4;
architecture one of latch4 is begin
process(clk,ena,d) --ck,d,,ena为敏感信号 variable cqi:std_logic_vector(15 downto 0); begin
if ena='0' then cqi:=cqi;
elsif clk'event and clk='1' then cqi:=d; end if; q<=cqi;
end process; --进程结束 end one;
(4)译码显示电路的VHDL源程序
library ieee ;
use ieee.std_logic_1164.all;
8
entity led_controller is
port (d:in std_logic_vector(3 downto 0); a: out std_logic_vector( 6 downto 0)); end led_controller;
architecture art of led_controller is begin process(d)
variable s: std_logic_vector ( 3 downto 0); begin
s:=d(3)&d(2)&d(1)&d(0); case s is
when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ end case; end process; end ;
9
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity latch4 is
port(d:in std_logic_vector(15 downto 0); --d,ena,clk为锁存器输入 ena,clk:in std_logic;
q:out std_logic_vector(15 downto 0)); --q为锁存器输出 end latch4;
architecture one of latch4 is begin
process(clk,ena,d) --ck,d,,ena为敏感信号 variable cqi:std_logic_vector(15 downto 0); begin
if ena='0' then cqi:=cqi;
elsif clk'event and clk='1' then cqi:=d; end if; q<=cqi;
end process; --进程结束 end one;
4.2顶层程序源码
总体例化语句:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity cntf is
port(rset,clk:in std_logic;
10
fx:in std_logic;
ledout:out std_logic_vector(27 downto 0)); end entity;
architecture one of cntf is
component control --时基产生与测评时序控制部分 port (clk:in std_logic;
rst,ena: out std_logic); end component;
component cnt10_4 --4位十进制计数器部分 port(fx,rst,ena:in std_logic; d:out std_logic_vector(15 downto 0)); end component;
component latch4 --锁存器部分 port(d:in std_logic_vector(15 downto 0); ena,clk:in std_logic;
q:out std_logic_vector(15 downto 0)); end component;
component led_controller --BCD码输入转LED显示部分 port(d:in std_logic_vector(3 downto 0); a:out std_logic_vector(6 downto 0)); end component;
signal x,z:std_logic;
signal g,h:std_logic_vector(15 downto 0); signal leds:std_logic_vector(27 downto 0); begin --元件例化
11
u1: control port map(clk=>clk,ena=>x,rst=>z);
u2: cnt10_4 port map(fx=>fx,rst=>z,ena=>x,d=>g);
u3: latch4 port map(clk=>clk,ena=>x,d=>g,q=>h);
u4: led_controller port map(d(3 downto 0)=>h(3 downto 0),a(6 downto 0)=>leds(6 downto 0));
u5: led_controller port map(d(3 downto 0)=>h(7 downto 4),a(6 downto 0)=>leds(13 downto 7));
u6: led_controller port map(d(3 downto 0)=>h(11 downto 8),a(6 downto 0)=>leds(20 downto 14));
u7: led_controller port map(d(3 downto 0)=>h(15 downto 12),a(6 downto 0)=>leds(27 downto 21));
ledout<=leds;
end; --结束
5.各模块的时序仿真结果
12
图5.1时基产生与测频时序控制电路模块的仿真结果
图5.2 10进制计数器的仿真结果
13
图5.3 4位10进计数器的仿真结果
图5.4 锁存器的仿真结果
14
图5.5 译码显示电路的仿真结果
图5.6 总体例化的仿真结果
6.设计心得
本课设给出了利用VHDL设计数字频率计的方法。比较与用芯片搭电路进行硬件实现来说是一种新的尝试,通过仿真调试到下载试验,结果都能清楚明了地显示出来,相当的快捷和方便,不同模块之间相互独立,底层模块的修改不会影响其他模块的工作,采用这种设计方法设计结构清晰,层次清楚,便于对设计进行修改。随着EDA技术的发展,CPLD/FAGA芯片的广泛应用,VHDL极大地显示了硬件描述语言的魅力。数字电路系统的设计变得像软件设计一样灵活,复杂的电路可以通过VHDL编程器的电路合成方式,轻易而且快速的达到要求的规格。
15
通过此次课程设计,使我对课本上的基础知识了解的更加透彻了。虽然,在设计中遇到过困难以及失败,但通过老师和同学们的帮助让我顺利通过了这次课程设计的验收。即使时间短了些,却激发了我对EDA方面的兴趣及爱好。我相信在不久的将来会有更大的进步。
7.参考文献
[1]马建国,孟宪元.电子设计自动化技术基础[M].北京:清华大学出版社,2004. [2]王小平,曹立明.遗传算法[M].西安:西安交通大学出版社,2001. [3]吴建新.基于量程自动转换的频率计设计[J].电子元器件应用,2007. [4]赵曙光.可编程逻辑器件原理、开发与应用.西安:西安电子科技大学出版社,2000.
16
正在阅读:
基于QUARTUS的EDA课程设计数字频率计的仿真01-08
2010年全国中学生生物学知识竞赛山东省赛区(高中组预赛试题)(含答案) - 图文01-17
律师考核试题12-06
中秋节的传说故事锦集11-20
论高校财务处与报账主体的财务信息沟通03-02
放心粮油店考核办法07-24
食品物性学复习资料(完全版)05-19
禅城区非物质文化遗产项目传承人简介一12-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 频率计
- 仿真
- 基于
- QUARTUS
- 课程
- 数字
- 设计
- EDA
- 主题班会 拒绝垃圾食品 永葆健康体魄
- 72h整条试运验收卡
- 电机车司机知识要点
- 第四版传热学第五、六,七 八 章习题解答
- 煤矿安全生产与职业病危害防治责任制汇编
- 江苏省泰州市姜堰区2014届高三语文上学期期中试题苏教版
- 监控室安装规范
- 中国目前教育现状分析与思考
- 三教明道正宗宝卷
- 农信银支付结算试题集锦
- 2016-2022年中国IGBT产业发展现状及市场监测报告 - 图文
- 高二数学必修五综合测试卷
- 高中化学 1 - 2 - 2 元素周期表和元素周期律的应用教师用书 新人教版必修2
- 铁路行车组织试卷题库
- 新版进出口货物报关单(2018横版)
- 电工班班组考核细则
- 财务报表分析练习题2
- 《经济学基础》作业1-6
- 保护肾脏,预防肾病,山药简直是全能手
- 我国体育发展短板研究的时空分布特点、热点及历史演化分析