datasheet
超过460,000+ 应用技术资源下载
doc

EDA课程设计

  • 1星
  • 日期: 2014-05-04
  • 大小: 357KB
  • 所需积分:3分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: EDA

EDA课程设计 EDA课程设计 EDA课程设计

EDA课程设计 ———数字频率计的设计 课程名称:数字频率计的设计 指导老师:李艳红 学生姓名:代文泽 专业班级;10级自动化(03)班 学生学号:1002150304 完成日期:2013年5月20日 1、 摘要 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂, 而且会产生比较大的延时, 造成测量误差、可靠性差。随着可编程ASIC的广泛应用, 以EDA 工具作为开发手段, 基于VHDL 语言, 将使整个系统大大简化,提高整体的性能和可靠性本文介绍一种基于VHDL的采用自顶而下(up to bottom ) 设计方法实现的数字频率计。该设计方法与传统的设计方法相比, 具有外围电路简单, 程序修改灵活和调试容易等特点。特别是在设计的初期阶段可以通过软件仿真来预知设计方案的可行性, 便于及时的调整设方案, 避免了传统方法中到项目开发的后期发现方案不妥, 从而造成人力、物力的浪费。同时,在本设计中用到的CPLD 器件运行稳定可靠, 可反复擦写, 便于系统的维护与更新。 2、 数字频率计的原理 频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。本文的数字频率计是按照计算每秒内待测信号的脉冲个数的基本原理来设计,此时取闸门时间为1秒。 数字频率计的关键组成部分包括一个测频控制信号发生器、一个计数器和一个锁存器,另外包含信号整形电路、脉冲发生器、译码驱动电路和显示电路,其原理框图如图1所示。 图1 数字频率计原理框图 三、系统的硬件设计 测评控制信号发生器的设计 频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1s脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时允许计数,低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号Load的上跳沿将计数器在前一秒的计数值锁存进32位锁存器REG32B中并由外部的7段译码器译出并稳定显示。设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下一秒钟的计数操作作准备。 程序如下: LIBRARY IEEE; ——测频控制信号发生器 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TESTCTL IS PORT(CLK:IN STD_LOGIC; ——1Hz测频控制时钟 TSTEN:OUT STD_LOGIC; ——计数器时钟使能 CLR_CNT:OUT STD_LOGIC; ——计数器清零 Load:OUT STD_LOGIC); ——输出锁存信号 END TESTCTL; ARCHITECTURE behav OF TESTCTL IS SIGNAL Div2CLK:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1'THEN ——1Hz时钟二分频 Div2CLK<=NOT Div2CLK; END IF; END PROCESS; PROCESS(CLK,Div2CLK) BEGIN IF CLK='0' AND Div2CLK='0'THEN CLR_CNT<='1'; ——产生计数器清零信号 ELSE CLR_CNT<='0';END IF; END PROCESS; Load<=NOT Div2CLK;TSTEN<=Div2CLK; END behav; 测频控制信号所生成的波形图如图1所示,框图如图2所示。 1、测评控制信号发生器的波形图 2、测评控制信号发生器的硬件结构图 3.2 计数器的设计 此十进制计数器的特殊之处是有一时钟使能输入端ENA用于锁定计数值,当高电平时计数允许,低电平时禁止计数。 计数器的设计程序如下: LIBRARY IEEE; ——有时钟使能的十进制计数器 USE IEEE.std_logic_1164.ALL; ENTITY CNT10 IS PORT(CLK : IN STD_LOGIC ; ——计数时钟信号 CLR : IN STD_LOGIC ; ——清零信号 ENA : IN STD_LOGIC ; ——计数使能信号 CQ : OUT INTEGER RANGE 0 TO 15 ; ——四位计数结果输出 CARRY_OUT : OUT STD_LOGIC) ; ——计数进位 END CNT10 ; ARCHITECTURE behav OF CNT10 IS SIGNAL CQI : INTEGER RANGE 0 TO 15 ; 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 ; ——等于9则计数器清零 END IF ; END IF ; END PROCESS ; PROCESS(CQI) BEGIN IF CQI=9 THEN CARRY_OUT <= '1'; ——进位输出 ELSE CARRY_OUT <= '0'; END IF ; END PROCESS ; CQ <= CQI ; END behav ; 计数器所生成的波形图如图1所示,框图如图2所示。 1、十进制计数器波形图 2、十进制计数的硬件图 3.3 锁存器的设计 若已有32位BCD码存在于此模块的输入口,则信号Load上升沿后即被锁存到计数器REG32B的内部,并由REG32B的输出端输出,然后由译码管上的7段译码器译成能在数码管上显示输出的相对应的数值。 锁存器的设计程序如下: LIBRARY IEEE; ——32位锁存器 USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT(Load:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END REG32B ; ARCHITECTURE behav OF REG32B IS BEGIN PROCESS(Load,DIN) BEGIN IF Load'EVENT AND Load='1' THEN DOUT<=DIN; END IF; END PROCESS; END behav; 锁存器所生成的波形图如图1所示,框图如图2所示。 1、32位锁存器的波形图 2、32位锁存器的硬件图 3.4 主程序 程序如下: LIBRARY IEEE; ——频率计顶层文件工程文件 USE IEEE.STD_LOGIC_1164.ALL; ENTITY FREQTEST IS PORT(CLK:IN STD_LOGIC; FSIN:IN STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END FREQTEST; ARCHITECTURE struc OF FREQTEST IS COMPONENT TESTCTL PORT(CLK:IN STD_LOGIC;TSTEN:OUT STD_LOGIC; CLR_CNT:OUT STD_LOGIC;Load:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT10 PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(31 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC); END COMPONENT; COMPONENT REG32B PORT(Load:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END COMPONENT; SIGNAL Load1,TSTEN1,CLR_CNT1:STD_LOGIC; SIGNAL DTO1:STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL CARRY_OUT1:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN U1:TESTCTL PORT MAP(CLK=>CLK,TSTEN=>TSTEN1, CLR_CNT=>CLR_CNT1,Load=>Load1); U2:REG32B PORT MAP(Load=>Load1,DIN=>DTO1,DOUT=>DOUT); U3:CNT10 PORT MAP(CLK=>FSIN,CLR=>CLR_CNT1,ENA=>TSTEN1, CQ=>DTO1(3 DOWNTO 0),CARRY_OUT=>CARRY_OUT1(0)); U4:CNT10 PORT MAP(CLK=>CARRY_OUT1(0),CLR=>CLR_CNT1, ENA=>TSTEN1,CQ=>DTO1(7 DOWNTO 4), CARRY_OUT=>CARRY_OUT1(1)); U5:CNT10 PORT MAP(CLK=>CARRY_OUT1(1),CLR=>CLR_CNT1, ENA=>TSTEN1,CQ=>DTO1(11 DOWNTO 8), CARRY_OUT=>CARRY_OUT1(2)); U6:CNT10 PORT MAP(CLK=>CARRY_OUT1(2),CLR=>CLR_CNT1, 1、数字频率计的波形图 2、数字频率计的硬件结构图 4、 结论 本文给出了利用VHDL设计数字频率计的方法,结果都能清楚明了地显示出来, 相当的快捷和方便, 不同模块之间相互独立, 底层模块的修改不会影响其他模块的工作, 采用这种设计方法设计结构清晰, 层次清楚, 便于对设计进行修改。随着EDA技术的发展, CPLD /FAGA 芯片的广泛应用,VHDL极大地显示了硬件描述语言的魅力. 数字电路系统的设计变得像软件设计一样灵活,复杂的电路可以通过VHDL编程器的电路合成方式,轻易而且快速的达到要求的规格。 五、心得体会 通过这次课程设计,了解掌握了将电子数字技术的知识并用于实际的基本方法。在设计过程中只有理论,逻辑思维,电路设计的步骤与方法也必不可少。在这次设计中,进一步培养了自己与团队协作的能力。这次课程设计加深了我对课本知识更深一步认识,同时也反应了自己在相关软件的应用上存在不足,有些知识是在书本上难以直接获得,需要从实践中去体会,在这一方面,自己以后还需要多加练习。 6、 参考文献 【1】 潘松,黄继业. EDA技术与VHDL. 北京:清华大学出版社,2007. 【2】 王诚,吴继华等. Altera FPGA/CPLD设计(基础篇). 北京:人民邮电出版社,2005. 【3】 谭会生,张昌凡. EDA技术及应用. 西安:西安电子科技出版社,2001. 【4】 杨刚,龙海燕,现代电子技术—VHDL与数字系统设计. 北京:电子工业出版社,2004.
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })