实验消抖电路的顶层设计和移位寄存器的功能仿真样本.docx
《实验消抖电路的顶层设计和移位寄存器的功能仿真样本.docx》由会员分享,可在线阅读,更多相关《实验消抖电路的顶层设计和移位寄存器的功能仿真样本.docx(11页珍藏版)》请在冰豆网上搜索。
实验消抖电路的顶层设计和移位寄存器的功能仿真样本
EDA实验四消抖电路顶层设计和移位寄存器功能仿真
一、实验目:
理解消抖电路原理与应用并用VHDL顶层代码实现;理解触发器基本原理,并且掌握LPM元件定制;掌握基本时序电路VHDL编写;
理解移位寄存器工作原理与应用;熟悉波形仿真基本办法;熟悉有关LPM元件定制;掌握VHDL元件例化办法;理解混合模块工程设计办法。
二、实验内容:
实验内容分为两某些,一是消抖电路设计与实现,其中底层用DFF:
LPM_FF定制,顶层用VHDL构造式描述;此外一种内容是74194(移位寄存器)功能仿真,理解详细仿真办法与环节。
三、实验办法:
实验办法:
采用基于FPGA进行数字逻辑电路设计办法。
采用软件工具是QuartusII软件仿真平台,采用硬件平台是AlteraEPF10K20TI144_4FPGA实验箱。
实验环节:
1、编写源代码(或者绘制电路逻辑图)。
打开QuartusII软件平台,点击File中New建立一种文献。
编写文献名与实体名一致,点击File/Saveas以“.vhd”为扩展名存盘文献。
2、按照实验箱上FPGA芯片名更改编程芯片设立。
操作是点击Assign/Device,选用芯片类型。
3、编译与调试。
拟定源代码文献为当前工程文献,点击Complier进行文献编译。
编译成果有错误或警告,则将要调试修改直至文献编译成功。
4、波形仿真及验证。
在编译成功后,点击Waveform开始设计波形。
点击“insertthenode”,按照程序所述引脚,任意设立各输入节点输入波形…点击保存按钮保存。
5、FPGA芯片编程及验证,应记录实验成果进行分析。
四、实验过程:
实验
(一)消抖电路设计与实现
a)运用LPM元件定制D触发器,详细环节如下:
(1)按照上次实验定制LPM环节和办法进行定制,lpm_ff元件所示宏功能选取对话框左侧列表中选取InstalledPlug_Ins->Storage->lpm_ff项。
(2)在参数设立页面1中,输入data选用1位,clock为时钟信号,类型为D型。
(3)在参数设立页面2中添加异步清零和异步置1.
然后按finish完毕,然后找出定制文献夹中VHDL文献,名称为lpm_D.vhd。
至此D触发器定制完毕,然后设计消抖电路。
b)消抖电路设计,环节如下:
(1)新建一种工程文献,工程名和文献名均为xiaodou,然后按照实验箱上FPGA芯片名更改芯片设立,选用芯片类型,建好工程。
设立如下图所示:
(2)工程建好后,然后将环节a中定制lpm_D.vhd文献复制到xiaodou文献夹中,即是放置底层文献。
(3)新建文献,编写VHDL源代码,用构造式描述完毕消抖电路顶层设计,然后保存编译,并进行波形仿真。
VHDL代码如下:
libraryieee;
useieee.std_logic_1164.all;
entityxiaodouis
port(d_in,clk:
inSTD_LOGIC;
clk_out:
outSTd_LOGIC);
endxiaodou;
architectureaofxiaodouis
signalw,x:
STD_LOGic;
componentlpm_Dis
port(clock:
instd_logic;
data:
instd_logic;
Q:
outstd_logic);
endcomponent;
begin
dff1:
lpm_Dportmap(clk,d_in,w);
dff2:
lpm_Dportmap(clk,w,x);
clk_out<=wand(notx);
enda;
C)、波形仿真
波形仿真过程。
点击file->new,选取VectorWaveformFile,新建一种波形仿真文献,然后在空白处点击右键,选取“InsertNodeorBus”,浮现一种对话框,进行添加节点,然后输入时钟勉励信号,并进行参数设立,两个重要参数:
Endtime结束时间和Gridsize网格大小。
点击Edit->Value->Clock,浮现一种对话框设立时钟勉励周期,相位以及其她参数,(注意d_in时钟设立)点击OK,显示波形图如下:
接着保存波形文献,然后进行仿真。
在仿真之前要先生成功能仿真表,一方面要先设立仿真模式。
然后点击菜单项Processing->GenerateFunctionSimulationNetlist,产生功能仿真所需要网表,接着就能进行仿真操作了。
波形仿真。
打开processing仿真工具,浮现仿真设立对话框,然后开始进行功能仿真。
这是功能仿真即波形仿真波形图。
d)、波形仿真图分析
由D触发器工作原理可知,当CLK为上升沿是,输入端有效,即是clk上升沿,d_in为高电平时,clk_out为高,d_in为低电平时,clk_out为低,;clk不是上升沿则clk_ou保持前一种值不变。
由波形图可知,正符合上述成果,这样设计也就实现了消抖功能,是输出为稳定脉冲,而不会随输入波动而浮现波动。
由波形图也可以看出虽然输入不稳定但是输出任然是稳定,这样就达到了目。
f)下载验证:
波形仿真进行完之后再进行一次全编译,后设立引脚,引脚设立如下:
其中CLK为时钟输入,每当上升沿时D触发器有效。
硬件实验箱验证成果如下:
按下70按钮,输出9led则会亮,并且稳定,在验证成果过程注意讲clk时钟周期调长些,以便于观测。
本次实验观测成果和波形验证同样,即是实现了消抖电路功能。
RTLViewer原理图:
实验
(二)移位寄存器功能仿真
本次实验目旨在学习电路仿真基本办法,并不规定下载验证,熟悉功能仿真环节。
实验过程如下:
用一片74194芯片连接好功能验证电路,如下图所示:
画好验证电路图之后就进行功能仿真(此处编译过程省略),详细仿真环节如下;
1)新建波形文献后波形图参数设立
设立网格宽度Gridsize和时间轴长度Endtime。
这两个参数是波形图基本参数。
添加节点前设立好参数可以减少波形图重复调节时间开销。
网格宽度和时间周期密切有关,普通设立为时钟周期四分之一,一半或者整数倍。
时间轴长度默以为1us,需要配合网格保证充裕仿真时间。
此处设立为时钟一半。
2)添加节点或总线后信号整合和位置分派
添加节点或总线后VWF文献如下图所示,信号杂乱需要重新调节位置和整合。
信号位置分派注意:
勉励输入信号(I类)和待分析输出信号(O类R类C类)上下放置,界限分明;时钟信号置顶,其她输入信号按“异步控制,同步控制,数据输入”顺序向下放置;同一元器件控制信号就近放置;同一功能控制信号就近放置。
重新调配后图形如下所示:
然后进行信号整合,把信号整合成总线,整合注意:
符合总线形式I/O信号优先整合;同一器件和同一属性控制信号优先整合;脉冲信号普通不整合;整合前信号应按“高位->低位”顺勋乡向下放置;整合后信号名以能直观反映该信号功能为宜。
信号整合后波形图如下图所示:
3)勉励输入及分段仿真,设立仿真勉励及仿真注意如下:
(1)一方面设立时钟等系统信号勉励完毕电路初始状态,如下图所示:
(2)、分段仿真,将时间轴划分为持续时间段,一时间段完毕一小步实验内容。
一小段信号勉励输入完毕后及时生成波形并判断成果;波形对的之后再依照下一步实验内容直至完毕所有实验内容仿真。
一、仿真并行置入1010,仿真波形如下图:
成果判断:
由上波形图可知,当clk为上升沿,sl_sr为11时,输入abcd为1010,则输出q_abcd并行置入1010,成果对的。
二、接着进行仿真异步清零功能,仿真波形如下:
成果判断:
clrn为异步清零,当clrn为低电平时,输出端清零,由上波形图可看出,当clrn为低电平时,输出q_abcd清零,仿真成果对的。
三、串行右移仿真,仿真波形如下:
成果分析:
串行右移是当s为01时,clk处在上升沿时,输出成果为SRSI,ABC,由上面两个波形可知,当处在细线位置时分别发生串行右移,对图一在原有基本上移入数据位为1,故成果为1000,对的;对于图二,当clk处在上升沿时,移入数据位为0,故成果为0100,波形仿真对的。
四、串行左移仿真,仿真波形如下图:
成果分析:
串行左移是当s为10时,clk处在上升沿时,输出成果为BCD,SLSI。
由上面两个波形可知,当处在细线位置时分别发生串行左移,对图一在原有基本上移入数据位为1,故成果为1001,对的;对于图二,当clk处在上升沿时,移入数据位为0,故成果为0010,波形仿真对的。
五、保持仿真,此环节以上波形均有阐明,当s为00,clk为上升沿时,输出保持当前值不变,由以上波形图可看出仿真成果是对的。
至此移位寄存器波形仿真完毕,最后成果为上诉串行左移完毕后波形图。
思考题
6、VHDl元件例化语句作用:
VHDL元件例化语句重要用于构造式描述方式时调用库元件或底层实体,是系统层次化设计一种重要途径。
7、signal作用是是声明一种信号,普通是用在architecture背面声明,普通在构造体中定义,属于全局变量,在任何进程中都可以调用。
8、lpm_ff定制时clear、load、set输入有哪两类?
异步清零,异步置1