eda课程设计数字频率计的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12/15-12/18 各组员针对自己的任务,查找相关资料,完成
进度
各自相关部分。
安排 12/19-12/20 集体讨论,找出一个较佳的方案。
12/21-12/25 进行可行性分析,对有错或不佳的地方加 以改正。
2010/12/26 最后分析整理,书写课程设计报告。
1、王小军 主编.《VHDL简明教程》.清华大学出版社, 1997
言实现数字频率计的整体设计。
二、设计任务
课
主要内容:
题
设计一个数字显示的频率计
的
主要任务:
1、频率计采用三位数码管显示。
主
2、频率测量范围为1Hz~999Hz,并有溢出指示。
要
3、频率计设有1~999Hz和1~999kHz两个量程,并用
内 LED指示。 4、频率计能根据测试信号的频率进行量程自动切
tsten:out std_logic;--计数器使能信号
clr_cnt:out std_logic;--计数器清零信号
load:out std_logic);--锁存器输出控制信号
end testpl;
architecture art of testpl is
signal div2clk:std_logic;
lpm_counter_component : lpm_counter
generic map (
lpm_direction => "up",
lpm_port_updown => "port_unused",
lpm_type => "lpm_counter",
lpm_width => 27
)
port map (
clock => clock,
q => sub_wire0
);
end syn;
2、测频控制信号发生器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity testpl is
port(clk:in std_logic;--1Hz信号
q: out std_logic_vector(3 downto 0);--q:4位计数结果输 出
本设计中使用的就是直接测频法,即用计数器在计算1s内输入信 号周期的个数,其测频范围为1Hz~9999Hz。 2.设计的原理框图如下所示:
三、设计思路
频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就 要求测频控制信号发生器testpl的计数使能信号tsten能产生一个1秒脉宽 的周期信号,并对频率计的每一计数器cnt10的使能端en进行同步控 制。当tsten为高电平"1"时,允许计数;为低电平"0"时停止计数,并保 持其计数结果。在停止计数期间,首先需要一个锁存信号load的上跳沿 将计数器在前1 秒种的计数值锁存进16位锁存器reg16b中。锁存信号之 后,必须有一个清零信号clr_cnt对计数器进行清零,为下1 秒的计数操 作做准备。,然后由外部数码管控制器ledcom控制的7段译码器ymq译 出,并稳定显示。
四、设计步骤与过程
1、频率产生器lpm_counter0:有一50MHz的时钟输入端clk,经 过分频处理后从输出端q[26..0]输出27种频率信号,从中选出三个不同 频率的信号:q[25]为1Hz输入testpl的clk端,q[13]为测试信号输入低位 计数器的cnt10的clk端,q[17]为数码管显示选择的扫描信号输入数码管 控制器的clk端。
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为 系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发 软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用 软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专 用集成芯片的一门新技术。其设计的灵活性使得EDA技术得以快速发 展和广泛应用。以QUARTUSII软件为设计平台,采用VHDL语言实现 数字频率计的整体设计。
4、16位锁存器reg16b:将已有16 位bcd码存在于此模块的输入口 din[15..0],在信号load的上升沿后即被锁存到寄存器reg16b的内部,并 由reg16b的输出端dout[15..0]输出,设置锁存器的好处是,数码管上显 示的数据稳定,不会由于周期性的清零信号而不断闪烁。。
5、数码管控制器ledcom:两个输入端一个为datain[15..0],另一个 为数码管显示选择的扫描频率输入端clk,输出端为数码管选择信号 com[3..0]和对应显示的数码管的BCD码信号端dataout[3..0],数码管显 示选择随扫描频率clk循环变化,实现稳定显示。
lpm_port_updown
: string;
lpm_type
: string;
lpm_width
: natural
);
port(clock : in std_logic ;
q : out std_logic_vector (26 downto 0));
end component;
begin
ቤተ መጻሕፍቲ ባይዱq <= sub_wire0(26 downto 0);
6、译码器ymq:输入端d_in[3..0]将接收BCD码信号,译码后输出端 d_out[7..0]输出8为7段数码管信号,其中输出的第8位均为高电平"1"可 以使四个数码管的小数点不显示。经译码器的处理输出后数码管显示 相应的数值。
7、元件声明及例化:将各个元器件依据设计相连
五、心得体会
这次课程设计中,我不仅复习巩固了课堂所学的理论知识,提高 了对所学知识的综合应用能力,并从根本上了解了VHDL语言的一些基 本用法,应用了原来不会或者不熟练的句型,如if句,case句等,也 学会了一些基本功能的实现方法,如分频,状态控制等等,从另外一 个角度重新审视了上学期完全从硬件角度出发的电路设计,明白了软 硬件之间的交互。通过这个课题,对系统框图、逻辑流程图、状态转 移图的设计有了一定的了解。也懂得了系统的前期设计对于后续的编 程和调试的重要性。
本课题采用了自下而上的设计方法,根据系统对硬件的要求,画
出系统控制流程图;然后根据控制流程图,分化模块,利用模块实现 功能;最后进行仿真和调试。
每个成功的背后都要面对无数次的失败,这次课设也不例外。虽 然遇到不少问题与困难,但通过老师以及同学的帮助,都一一得到顺 利地解决。我想这必定会为将来的实践积累宝贵的经验和教训。
end lpm_counter0;
architecture syn of lpm_counter0 is
signal sub_wire0 : std_logic_vector (26 downto 0);
component lpm_counter
generic (
lpm_direction
: string;
clr_cnt<='1';
--当div2clk与clk同时为零时计数器清
零
else clr_cnt<='0'; --当div2clk处于的高电平时计数器计数
end if;
end process;
load<=not div2clk; --锁存器输出与计数器使能信号反相
tsten<=div2clk;
end art;
总之,这次课设我们都受益匪浅。整个过程氛围浓厚,本人也态 度十分认真,积极向老师和同学求教并在此过程中收获良多,能够进 一步了解和使用一门与硬件直接打交道的基本语言对我们将来的学习 和工作都会十分有益。
附件: 附件1、设计图形元件原理图:
附件2、程序源代码:
1、频率产生器:
library ieee;
2、潘松、王国栋 主编.《VHDL应用教程》电子科技大学 参考 出版社,2000 资料
3、甘历 主编.《VHDL应用于开发实践》科学出版社,
2003
4、刘爱荣 主编.《EDA技术与CPLD/FPGA开发应用简明教 程》.清华大学出版社,2007
一、设计背景
随着数字电子技术的发展,频率测量成为一项越来越普遍的工 作,因此测频计常受到人们的青睐。目前许多高精度的数字频率计都 采用单片机加上外部的高速计数器来实现,然而单片机的时钟频率不 高导致测频速度比较慢,并且在这种设计中,由于PCB版的集成度不 高,导致PCB板走线长,因此难以提高计数器的工作频率。为了克服 这种缺点,大大提高测量精度和速度,我们可以设计一种可编程逻辑 器件来实现数字频率计。
二、设计原理
1、频率计设计原理 在电子技术中,频率是最基本的参数之一,并且与许多电参量的 测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得 更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度 高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是 频率测量的重要手段之一。
容 换。当频率小于1kHz时,系统选择1s的闸门时间,当频率
及任 大于等于1kHz时,在下一次测量时,选择0.1s的闸门时
务 间。 5、采用记忆显示方式,即在计数过程中不显示测试
数据,待技术过程结束后显示测试结果,并将此结果保持
到下一次计数结束。显示时间不小于1s。
三、设计工作量
2周完成
2010/12/14 集体针对设计进行分析、讨论,确定好分 工,明确设计进度,以及对设计总体上有个了解。
数字式频率计的测量原理有两类:一是直接测频法,即在一定闸 门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如 周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数 器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短 在达到不同的测量精度;间接测频法适用于低频信号的频率测量。
2、测频控制信号发生器testpl:输入端clk收到1Hz信号后,其输 出端testen控制各个cnt10的使能,clr_cnt控制各个cnt10的清零,load控
制锁存器内数据的输出。 3、十进制计数器cnt10:有一时钟使能输入端en,用于锁定计数
值。当高电平"1"时计数允许计数,低电平"0"时禁止计数。多位十进制 计数器时,最低位的计数器的clk端输入被测信号,各计数器的进位输 出端c10将信号输到下一位十进制计数器cnt10的输入端clk,最高位十 进制计数器cnt10的进位输出端c10不处理。
begin
process(clk)
begin
if clk'event and clk='1'then
div2clk<=not div2clk; --div2clk为2Hz
end if ;
end process;
process (clk ,div2clk)
begin
if( clk='0'and div2clk='0')then
3、有时钟使能的十进制计数器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt10 is
port(clk,clr,en: in std_logic; --clk:计数器时钟,clr:清零信号,en:计数使能信号
伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐 渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多 领域。电子设计自动化是一种实现电子系统或电子产品自动化设计的 技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机 科学领域的大多数最新研究成果,以高性能的计算机作为工作平台, 促进了工程发展。EDA的一个重要特征就是使用硬件描述语言 (HDL)来完成的设计文件,VHDL语言是经IEEE确认的标准硬件语 言,在电子设计领域受到了广泛的接受。
use ieee.std_logic_1164.all;
library lpm;
use lpm.lpm_components.all;
entity lpm_counter0 is
port(clock: in std_logic ;
q: out std_logic_vector (26 downto 0));
VHDL与数字系统设计
设计说明书
数字频率计的设计
起止日期: 2010年 12 月 14 日 至 2010年 12 月 26 日
学生姓名 班级 学号 成绩 指导教师(签 字)
计算机与通信学院
2010 年 12 月 26 日
课题名称 组长
数字频率计 同组人员
人数 7
一、设计的主要技术参数 在PC机上以QUARTUSII软件为设计平台,采用VHDL语