VHDL8位计数器
- 格式:docx
- 大小:13.31 KB
- 文档页数:2


VHDL数字频率计数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。
将使整个系统大大简化。
提高整体的性能和可靠性。
VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。
相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。
它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。
经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。
因此数字频率计在测量物理量方面应用广泛。
本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。
《EDA技术及应用》课程设计报告题目:八位数码管扫描显示电路的设计院(系):机电与自动化学院专业班级:电气自动化技术学生姓名:学号:指导教师:20 年6月10日至20 年6月23日华中科技大学武昌分校4、课程设计使用设备(1)EDA及SOPC综合实验平台;(2)导线若干;(3)PC机;(4)Quartus II开发工具软件。
目录摘要................................................................1.课程设计题目及要求 (1)1.1设计题目 (1)1.2L E D显示器的动态扫描驱动电路 (1)1.3设计方案论证 (1)2.L E D显示器动态扫描驱动电路各单元电路设计 (3)2.1计数器与译码器的设计 (3)2.2一位共阳极L E D动态驱动电路设计 (4)2.3七段数码管的设计 (5)3.L E D显示器动态扫描系统设计 (7)3.1整体电路图及工作原理 (7)3.2V H D L程序设计 (7)3.3电路参数计算 (10)4.Q u a r t u s运行调试 (12)4.1时序仿真 (12)4.2硬件逻辑验证 (13)4.3调试结果分析 (13)4.4调试中出现的问题及解决方法 (14)5.设计总结 (15)6.参考文献 (16)摘要本文通过一个3-8译码器电路,将输入的4位2进制数转换为与LED显示对应的8位段码,位码就是LED的显示使能端,对于共阳级的LED而言,高电平使能。
要使8个数码管动态扫描显示,就是把所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。
使用Quartus II6.0软件设计一个VHDL程序并对设计方案进行仿真,再硬件调试经检测输出正确的设计要求结果。
关键词:动态扫描Quartus II6.0 VHDLAbstractIn this paper, through a 3-8 decoder circuit, the input of four hexadecimal number into 2 and eight LED display the corresponding section of code, a codeis the LED display can make side, for the LED with Yang level, high level canmake. To makeeight digital tube dynamic scans showed that is all the samesegment digital tube connected in parallel, through the gating signal time-sharing control public side, the digital tube loop light multiple digital tube, and use the eye of the phenomenon of persistence of vision, as long as the scanning frequency is more than 50 hz, will see the flicker phenomenon. Using Quartus II6.0 a VHDL program design and the software design simulation, and hardware debugging through testing output correct design requirementsKey words: dynamic scanning Quartus II6.0 VHDL1. 课程设计题目及要求1.1设计题目八位数码管扫描显示电路的设计设计主要内容:本课题要求掌握使用Quartus II设计数字系统的设计思路和设计方法。
主程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY A ISPORT (CLK:IN STD_LOGIC;FSIN:IN STD_LOGIC;carry_out2:out std_logic;DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END A;ARCHITECTURE invq OF A ISCOMPONENT testctlPORT(CLK:IN STD_LOGIC;tsten:OUT STD_LOGIC;clr_cnt:OUT STD_LOGIC;LOAD:OUT STD_LOGIC);END COMPONENT;COMPONENT cnt10PORT(clk,clr,ena:IN STD_LOGIC;cq:out STD_LOGIC_VECTOR(3 DOWNTO 0);carry_out:OUT STD_LOGIC);END COMPONENT;COMPONENT reg16bPORT(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); BEGINU1:testctl PORT MAP(CLK=>CLK,tsten=>TSTEN1,clr_cnt=>CLR_CNT1,LOAD=>LOAD1);U2:reg16b 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,ena=>tsten1,cq=>dto1(15 downto 12),carry_out=>carry_out1(3));U7:cnt10 PORT MAP(clk=>carry_out1(3),clr=>clr_cnt1,ena=>tsten1,cq=>dto1(19 downto 16),carry_out=>carry_out1(4));U8:cnt10 PORT MAP(clk=>carry_out1(4),clr=>clr_cnt1,ena=>tsten1,cq=>dto1(23 downto 20),carry_out=>carry_out1(5));U9:cnt10 PORT MAP(clk=>carry_out1(5),clr=>clr_cnt1,ena=>tsten1,cq=>dto1(27 downto 24),carry_out=>carry_out1(6));U10:cnt10 PORT MAP(clk=>carry_out1(6),clr=>clr_cnt1,ena=>tsten1,cq=>dto1(31 downto 28),carry_out=>carry_out2); END invq;计数器library ieee;use ieee.std_logic_1164.all;entity cnt10 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;carry_out: out std_logic;cq:out INTEGER RANGE 0 TO 15);end cnt10;architecture behav of cnt10 issignal cq1:INTEGER RANGE 0 TO 15;beginprocess(clk,clr,ena)beginif clr='1' then cq1<=0;elsif clk'event and clk='1' thenif ena='1' thenif cq1<9 then cq1<=cq1+1;else cq1<=0;end if;end if;end if;end process;process(cq1)beginif cq1=9 then carry_out<='1';else carry_out<='0';end if;end process;cq<=cq1;end behav;控制器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY testctl ISPORT (clk:IN STD_LOGIC;tsten:out STD_LOGIC;clr_cnt:out STD_LOGIC;load:OUT STD_LOGIC);END testctl;ARCHITECTURE w OF testctl ISSIGNAL div2clk:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF clk'event and clk='1' thendiv2clk<=not div2clk;end if;end process;process(clk,div2clk)beginif clk='0' and div2clk='0' then clr_cnt<='1';else clr_cnt<='0';end if;END PROCESS;load<=not div2clk;tsten<=div2clk;END w;锁存器library ieee;use ieee.std_logic_1164.all;entity reg16b isport(load:in std_logic;din:in std_logic_vector(31 downto 0);dout:out std_logic_vector(31 downto 0)); end reg16b;architecture behav of reg16b isbeginprocess(load,din)beginif load'event and load='1' then dout<=din;end if;end process;end behav;。
简易电子琴的VHDL仿真与实现电子琴是一种应用广泛的乐器,而现在,电子琴的制造已经从纯硬件逐渐过渡到硬件加软件的方式。
VHDL是一种硬件描述语言,它可以方便地描述各种硬件逻辑功能,而且还可以帮助设计者实现FPGA的目标硬件。
本文主要介绍简易电子琴的VHDL仿真与实现。
一、设计思路简易电子琴的设计基本上就是将钢琴的琴键和生产声音的部件(如电子光电元件或电子开关等)结合在一起。
琴键的设计分为两个部分:按下和弹起。
按下部分是由一个简单的开关连接到FPGA引脚的输入端。
当琴键被按下时,开关闭合,产生一个低电平信号,这个信号作为FPGA的输入。
弹起部分用一个气压传感器检测琴键是否已经弹起。
生产声音的部件由一个数字-模拟转换器(Digital-to-Analog Converter,简称DAC)处理FPGA通过一个计数器输出的数字信号,将它转换成模拟信号。
这样,设计思路就非常清晰明了。
二、VHDL仿真的步骤1. 创建虚拟设计:在仿真之前,我们需要创建一个虚拟的设计,包括引脚、组件、实体、测试模块,以及其他必需的部件。
这些将精确地模拟真实世界中的电路元素。
2. 创建设计模块:VHDL仿真涉及到多个模块。
在这种情况下,我们有两个模块:数字模块和组件模块。
我们将数字模块设计为接收一个8位的计数器并输出模拟信号。
组件模块包括DAC芯片和琴键开关,这些组件分别接收输入信号,经过逻辑处理后,通过计数器和气压传感器输出压缩后的模拟信号。
3. 配置实体接口:为了确保VHDL仿真的准确性,我们必须配置模块实体接口,这里有两个实体:数值模块和组件模块。
它们需要定义数据量和接收输入端口。
4. 定义测试激励波形:这些波形定义从测试模块输入到仿真环境中的数字信号序列。
因此,我们需要定义输入数据以及时钟信号。
5. 编写测试模块:测试模块是用来检测VHDL仿真环境的激励波形。
它包括测试模块、实体、配置、激励波形和仿真模块。
三、VHDL实现的步骤1. 设计和构建硬件:在这一阶段,我们将实现FPGA硬件。