实验一实用计数器的VHDL设计说明Word下载.docx
- 文档编号:13767674
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:27
- 大小:594.72KB
实验一实用计数器的VHDL设计说明Word下载.docx
《实验一实用计数器的VHDL设计说明Word下载.docx》由会员分享,可在线阅读,更多相关《实验一实用计数器的VHDL设计说明Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
BEGIN
PROCESS(CLK,RST,EN,LOAD)
VARIABLEQ:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='
0'
THENQ:
=(OTHERS=>
'
);
ELSIFCLK'
EVENTANDCLK='
1'
THEN
IFEN='
IF(LOAD='
)THENQ:
=DATA;
ELSE
IFQ<
9THENQ:
=Q+1;
ELSEQ:
ENDIF;
ENDIF;
ENDIF;
ENDIF;
IFQ="
1001"
THENCOUT<
='
;
ELSECOUT<
DOUT<
=Q;
ENDPROCESS;
ENDBEHAV;
四.程序分析
该程序的进程语句中含有两个独立的IF语句。
第一个IF语句是非完整性条件语句,因而将产生计数器时序电路;
第二个IF语句产生一个纯组合逻辑的多路选择器。
五.RTL电路图
六.工作时序图
通过对上图的观察可知:
(1)当计数器使能EN为高电平时允许计数;
RST低电平时计数器被清零。
(2)图中出现的加载信号LOAD由于是同步加载控制信号,其第一个负脉冲恰好在CLK的上升沿处,故将5加载于计数器,此后由5到9,出现了第一个进位脉冲。
由于LOAD第二个负脉冲未在CLK上升沿处,故没有发生加载操作,而第3,第4个负脉冲都出现了加载操作,这是因为它们都处于CLK上升沿处。
实验二LPM计数器模块使用方法
熟悉调用quartusII中的LPM计数器,掌握流程的设置以及时序仿真。
掌握LPM计数器的调用方法,流程的测试,同类宏模块的一般使用方法及不同特性的仿真测试方法。
三.设计过程
(1)LMP_COUNTER计数器模块文本调用
(2)生成的计数器文件
LIBRARYieee;
USEieee.std_logic_1164.all;
LIBRARYlpm;
USElpm.all;
ENTITYCNT4BIS
PORT
(
aclr:
INSTD_LOGIC;
clk_en:
clock:
data:
INSTD_LOGIC_VECTOR(3DOWNTO0);
sload:
updown:
cout:
OUTSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDCNT4B;
ARCHITECTURESYNOFcnt4bIS
SIGNALsub_wire0:
STD_LOGIC;
SIGNALsub_wire1:
STD_LOGIC_VECTOR(3DOWNTO0);
COMPONENTlpm_counter
GENERIC(
lpm_direction:
STRING;
lpm_modulus:
NATURAL;
lpm_port_updown:
lpm_type:
lpm_width:
NATURAL
PORT(
sload:
clk_en:
aclr:
clock:
cout:
q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
data:
updown:
INSTD_LOGIC
ENDCOMPONENT;
cout<
=sub_wire0;
q<
=sub_wire1(3DOWNTO0);
lpm_counter_component:
lpm_counter
GENERICMAP(
lpm_direction=>
"
UNUSED"
lpm_modulus=>
12,
lpm_port_updown=>
PORT_USED"
lpm_type=>
LPM_COUNTER"
lpm_width=>
4
)
PORTMAP(
sload=>
sload,
clk_en=>
clk_en,
aclr=>
aclr,
clock=>
clock,
data=>
data,
updown=>
updown,
cout=>
sub_wire0,
q=>
sub_wire1
ENDSYN;
四.时序仿真
五.原理图输入设计
实验三基于LPM的流水线乘法累加器设计
一.实验目的
通过一个八位流水线乘法累加器的实例介绍顶层原理图工程,VHDL文本描述和宏功能块为原理图元件的输入和设计方法。
二.实验原理
通过TOOLS中的MegaWizardPlug-InManager命令分别生成LPM加法器模块,乘法模块及寄存器模块。
最后有序的将他们连接在一起构成八位乘法累加器顶层文件。
三.设计过程
(1)LPM加法器模块设置调用
(2)LPM乘法器模块设置调用
(3)各模块的symbol
ADD16B
MULT8B
FF8B
四.8位乘法累加器顶层设计
五.乘法累加器的时序仿真
由上述波形可知:
在clk的第四个上升沿后才得到第一个计算数据,之前都是0,这就是流水线结构的计算结果。
第四个上升沿得到结果为,而第五个上升沿后得到结果为,第六个上升沿后得到的结果为。
实验四全加器
熟悉quartusII的原理图输入设计方法,学会进行底层元件设计和层次化设计的主要步骤。
1位全加器可以用两个半加器及一个或门链接而成,而一个半加器是由两个输入端,两个输出端,一个与门及一个异或门。
三.实验内容
(1)半加器原理图
(2)半加器仿真波形
(3)半加器元件
(4)全加器原理图
(5)全加器时序仿真波形
实验五异步清零和同步加载与时钟使能的计数器
熟悉quartusII的VHDL文本设计流程全过程,学习计数器的设计,仿真和硬件测试,掌握原理图与文本混合设计方法
(1)程序分析
--4位预置数
--计数值输出
--计数进位输出
--复位低电平时,计数寄存器清0
THEN--测试时钟上升沿
THEN--计数使能高电平,允许计数
ELSE--预置控制低电平,允许加载
--计数小于9,继续累加
--否则计数清0
--当计数位9时,进位输出1
--否则进位输出0
--计数寄存器的值输出端口
四.编译仿真波形
(图一)
(图二)
五.原理图示意图
六.原理图时序仿真
七.分析结果
选用CycloneIII系列高速FPGA出现的时序仿真图(如图一),没有出现毛刺现象,而选择Cyclone系列FPGA就会出现毛刺现象(如图二)
实验六4选1多路选择器设计
进一步熟悉QuartusII的VHDL文本设计流程,组合电路的设计仿真和测试。
数据选择器在实际中得到了广泛的应用,尤其是在通信中为了利用多路信号中的一路,可以采用数据选择器进行选择再对该路信号加以利用。
从多路输入信号中选择其中一路进行输出的电路称为数据选择器。
或:
在地址信号控制下,从多路输入信息中选择其中的某一路信息作为输出的电路
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 实用 计数器 VHDL 设计 说明