实验一实用计数器的VHDL设计说明

上传人:xmg****18 文档编号:141887337 上传时间:2020-08-13 格式:DOC 页数:35 大小:666.50KB
返回 下载 相关 举报
实验一实用计数器的VHDL设计说明_第1页
第1页 / 共35页
实验一实用计数器的VHDL设计说明_第2页
第2页 / 共35页
实验一实用计数器的VHDL设计说明_第3页
第3页 / 共35页
实验一实用计数器的VHDL设计说明_第4页
第4页 / 共35页
实验一实用计数器的VHDL设计说明_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《实验一实用计数器的VHDL设计说明》由会员分享,可在线阅读,更多相关《实验一实用计数器的VHDL设计说明(35页珍藏版)》请在金锄头文库上搜索。

1、 . . . 实验一 实用计数器的VHDL设计一 实验目的熟悉quartusII的VHDL文本设计流程全过程,学习计数器的设计,仿真,进一步了解异步的概念。二 实验原理实用的D触发器除含有时钟端CLK外,还含有异步清零端CLR和时钟使能端ENA。这里的异步并非时序逻辑的异步,而是指独立于时钟控制的复位控制端,在任何时候,只要CLR=1,此时D触发器的输出端即可清零,与时钟信号无关。三 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,RST,EN,

2、LOAD:IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);END CNT10;ARCHITECTURE BEHAV OF CNT10 ISBEGINPROCESS(CLK,RST,EN,LOAD)VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST=0 THEN Q :=(OTHERS=0);ELSIF CLKEVENT AND CLK=1 THENIF EN=1

3、 THENIF(LOAD=0) THEN Q:= DATA; ELSEIF Q0);END IF;END IF;END IF;END IF;IF Q=1001 THEN COUT=1;ELSE COUT=0; END IF;DOUT =Q;END PROCESS;END BEHAV;四 程序分析该程序的进程语句中含有两个独立的IF语句。第一个IF语句是非完整性条件语句,因而将产生计数器时序电路;第二个IF语句产生一个纯组合逻辑的多路选择器。五 RTL电路图六 工作时序图通过对上图的观察可知:(1) 当计数器使能EN为高电平时允许计数;RST低电平时计数器被清零。(2) 图中出现的加载信号LOA

4、D由于是同步加载控制信号,其第一个负脉冲恰好在CLK的上升沿处,故将5加载于计数器,此后由5到9,出现了第一个进位脉冲。由于LOAD第二个负脉冲未在CLK上升沿处,故没有发生加载操作,而第3,第4个负脉冲都出现了加载操作,这是因为它们都处于CLK上升沿处。实验二 LPM计数器模块使用方法一 实验目的熟悉调用quartusII中的LPM计数器,掌握流程的设置以及时序仿真。二 实验原理掌握LPM计数器的调用方法,流程的测试,同类宏模块的一般使用方法及不同特性的仿真测试方法。三 设计过程(1)LMP_COUNTER计数器模块文本调用(2)生成的计数器文件LIBRARY ieee;USE ieee.s

5、td_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY CNT4B ISPORT(aclr: IN STD_LOGIC ;clk_en: IN STD_LOGIC ;clock: IN STD_LOGIC ;data: IN STD_LOGIC_VECTOR (3 DOWNTO 0);sload: IN STD_LOGIC ;updown: IN STD_LOGIC ;cout: OUT STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END CNT4B;ARCHITECTURE SYN OFt4b IS

6、SIGNAL sub_wire0: STD_LOGIC ;SIGNAL sub_wire1: STD_LOGIC_VECTOR (3 DOWNTO 0);COMPONENT lpm_counterGENERIC (lpm_direction: STRING;lpm_modulus: NATURAL;lpm_port_updown: STRING;lpm_type: STRING;lpm_width: NATURAL);PORT (sload: IN STD_LOGIC ;clk_en: IN STD_LOGIC ;aclr: IN STD_LOGIC ;clock: IN STD_LOGIC

7、;cout: OUT STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);data: IN STD_LOGIC_VECTOR (3 DOWNTO 0);updown: IN STD_LOGIC );END COMPONENT;BEGINcout = sub_wire0;q UNUSED,lpm_modulus = 12,lpm_port_updown = PORT_USED,lpm_type = LPM_COUNTER,lpm_width = 4)PORT MAP (sload = sload,clk_en = clk_en,aclr = aclr,

8、clock = clock,data = data,updown = updown,cout = sub_wire0,q = sub_wire1);END SYN;四 时序仿真五 原理图输入设计实验三 基于LPM的流水线乘法累加器设计一实验目的熟悉调用quartusII中的LPM计数器,掌握流程的设置以及时序仿真。通过一个八位流水线乘法累加器的实例介绍顶层原理图工程,VHDL文本描述和宏功能块为原理图元件的输入和设计方法。二实验原理通过TOOLS中的MegaWizard Plug- In Manager命令分别生成LPM加法器模块,乘法模块及寄存器模块。最后有序的将他们连接在一起构成八位乘法累

9、加器顶层文件。三设计过程(1)LPM加法器模块设置调用(2)LPM乘法器模块设置调用(3)各模块的symbolADD16BMULT8BFF8B四8位乘法累加器顶层设计五乘法累加器的时序仿真由上述波形可知:在clk的第四个上升沿后才得到第一个计算数据,之前都是0,这就是流水线结构的计算结果。第四个上升沿得到结果为,而第五个上升沿后得到结果为,第六个上升沿后得到的结果为。实验四 全加器一 实验目的熟悉quartusII的原理图输入设计方法,学会进行底层元件设计和层次化设计的主要步骤。二 实验原理1位全加器可以用两个半加器及一个或门而成,而一个半加器是由两个输入端,两个输出端,一个与门及一个异或门。

10、三 实验容(1)半加器原理图(2)半加器仿真波形(3)半加器元件(4)全加器原理图(5)全加器时序仿真波形实验五 异步清零和同步加载与时钟使能的计数器一 实验目的熟悉quartusII的VHDL文本设计流程全过程,学习计数器的设计,仿真和硬件测试,掌握原理图与文本混合设计方法二 实验原理实用的D触发器除含有时钟端CLK外,还含有异步清零端CLR和时钟使能端ENA。这里的异步并非时序逻辑的异步,而是指独立于时钟控制的复位控制端,在任何时候,只要CLR=1,此时D触发器的输出端即可清零,与时钟信号无关。三 设计过程(1) 程序分析LIBRARY IEEE;USE IEEE.STD_LOGIC_11

11、64.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,RST,EN,LOAD:IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); -4位预置数 DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-计数值输出COUT : OUT STD_LOGIC);-计数进位输出END CNT10;ARCHITECTURE BEHAV OF CNT10 ISBEGINPROCESS(CLK,RST,EN,LOAD)VARIABLE Q : STD_LOGI

12、C_VECTOR(3 DOWNTO 0);BEGINIF RST=0 THEN Q :=(OTHERS=0);-复位低电平时,计数寄存器清0ELSIF CLKEVENT AND CLK=1 THEN -测试时钟上升沿IF EN=1 THEN -计数使能高电平,允许计数IF(LOAD=0) THEN Q:= DATA; ELSE -预置控制低电平,允许加载IF Q0);-否则计数清0END IF;END IF;END IF;END IF;IF Q=1001 THEN COUT=1;-当计数位9时,进位输出1ELSE COUT=0; END IF;-否则进位输出0DOUT =Q;-计数寄存器的值输

13、出端口END PROCESS;END BEHAV;该程序的进程语句中含有两个独立的IF语句。第一个IF语句是非完整性条件语句,因而将产生计数器时序电路;第二个IF语句产生一个纯组合逻辑的多路选择器。四 编译仿真波形(图一)(图二)五 原理图示意图六原理图时序仿真七分析结果选用CycloneIII系列高速FPGA出现的时序仿真图(如图一),没有出现毛刺现象,而选择Cyclone系列FPGA就会出现毛刺现象(如图二)实验六 4选1多路选择器设计一 实验目的进一步熟悉QuartusII的VHDL文本设计流程,组合电路的设计仿真和测试。二 实验原理数据选择器在实际中得到了广泛的应用,尤其是在通信中为了利用多路信号中的一路

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号