EDA第四次实验报告
(移位寄存器)
一实验目的
(1) 移位寄存器的工作原理及应用
(2) 定制LPM原件及应用
(3) 电路仿真基本方法
(4) 混合模块工程设计方法
二实验仪器
(1) PC一台
(2) DDA系统数字系统实验平台
(3) Quatartus2配套软件
三实验原理
(1) 基本概念:移位寄存器是用来存储二进制数字信息且能进行信息移位的时序逻辑电路,根据移位寄存器存取信息的方式不同分为串入串出,串入并行,并行串出,并行并出四种形式。
(2) 基本原理
74194是一种典型的中规模集成移位寄存器,由四个RS触发器和一些门电路构成的四位双向移位寄存器,该移位寄存器具有左移,右移。并行输入数据,保持及异步清零五种功能,其中ABCD为并行输入端,QAQBQCQD为并行输出端;SRSI为右移串行输入端,SLSI为左移串行输入端;S1S0为模式控制端;CLRN为异步清零端;CLK为时钟脉冲输入端,33移位寄存器的应用
Clk,clk1:时钟输入信号,clk频率应较高,clk1频率应较低。
clrn:清零信号,二进制输入,低电平输入
sl 、sr:左移或者右移,二进制输入。
s0、s1模式控制端,二进制输入;
abcd:abcd输入端,输入四个二进制信号;
qabcd:输出四个二进制信号
(3) 应用:
可构成计数器,顺序脉冲发生器,串行累加器,串并转换,并串转换等。
四实验步骤
(1)74194功能验证电路
(2)74194功能仿真结果
五实验心得
通过本次试验,我基本掌握了移位寄存器的的工作原理,总结了一些设置波形的方法:添加节点前设置好参数;添加节点或总线后信号整合与位置分配,不同类的信号要上下放置,时钟信号置顶,其他信号可以按照“异步控制—》同步控制—》数据输入”顺序向下放置,同一元件的控制信号就近放置;同一功能的控制信号就近放置。先设置时钟等激励信号完成电路的初始状态,将时间轴划分为连续的时间段,一小段完成一小步实验内容,激励输入完成后立即生成波形并判断结果。
第二篇:EDA实验报告 触发器及应用及移位寄存器
EDA实验报告
实验目的:
1.触发器的工作原理。
2.基本时序电路的VHDL代码编写。
3.按键消抖电路应用。
4.定制LPM原件。
5.VHDL语言中元件例化的使用。
6.移位寄存器的工作原理及应用。
实验要求:
1.运用LPM原件定制DFF触发器,并调用LPM 定制的DFF触发器,用VHDL语言的元件例化实现消抖电路并了解其工作原理。
2. 移位寄存器是用来寄存二进制数字信息且能进行信息移位的时序逻辑电路。根据移位寄存器存取信息的方式不同可分为串入串出、串入并出、并入串出、并入并出4种形式,并通过数码管显示出来。
实验原理:
1.消抖电路
由于一般的脉冲按键与电平按键采用机械开关结构,其核心部件为弹性金属簧片。按键信号在开关拨片与触点接触后经多次弹跳才会稳定。本实验采用消抖电路消除抖动以获得一个稳定的电平信号。
2.移位寄存器
移位寄存器具有左移、右移、并行输入数据、保持及异步清零5种功能。其中A、B、C、D为并行输入端,、、、为并行输出端;SRSI为右移串行输入端,SLSI为左移串行输入端;S1、S0为模式控制端;CLRN为异步清零端;CLK为时钟脉冲输入端。
实验具体步骤:
1.消抖电路
(1).用lpm定制DFF
<1>.设置lpm_ff选择Installed Plug-Ins→Storage→lpm_ff项;
<2>.设置输入data为1位,clock为时钟信号,类型为D型;
<3>.添加异步清零和异步置1;
其VHDL语言为:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY lpm;
USE lpm.all;
ENTITY mydff IS
PORT
(
clock : IN STD_LOGIC ;
data : IN STD_LOGIC ;
q : OUT STD_LOGIC
);
END mydff;
ARCHITECTURE SYN OF mydff IS
SIGNAL sub_wire0 : STD_LOGIC_VECTOR (0 DOWNTO 0);
SIGNAL sub_wire1 : STD_LOGIC ;
SIGNAL sub_wire2 : STD_LOGIC ;
SIGNAL sub_wire3 : STD_LOGIC_VECTOR (0 DOWNTO 0);
COMPONENT lpm_ff
GENERIC (
lpm_fftype : STRING;
lpm_type : STRING;
lpm_width : NATURAL
);
PORT (
clock : IN STD_LOGIC ;
q : OUT STD_LOGIC_VECTOR (0 DOWNTO 0);
data : IN STD_LOGIC_VECTOR (0 DOWNTO 0)
);
END COMPONENT;
BEGIN
sub_wire1 <= sub_wire0(0);
q <= sub_wire1;
sub_wire2 <= data;
sub_wire3(0) <= sub_wire2;
lpm_ff_component : lpm_ff
GENERIC MAP (
lpm_fftype => "DFF",
lpm_type => "LPM_FF",
lpm_width => 1
)
PORT MAP (
clock => clock,
data => sub_wire3,
q => sub_wire0
);
END SYN;
(2).VHDL结构式描述顶层
--Top level entity xiaodou
library ieee;
use ieee.std_logic_1164.all;
entity xiaodou is
port( d_in,clk:in std_logic;
clk_out:out std_logic);
end xiaodou;
architecture xiaodou_arch of xiaodou is
component mydff is --元件例化
PORT
(
clock : IN STD_LOGIC ;
data : IN STD_LOGIC ;
q : OUT STD_LOGIC
);
END component;
signal x,y:std_logic;
begin
dff1:mydff port map(clock=>clk,data=>d_in,q=>x);
dff2:mydff port map(clk,x,y);
clk_out<=x and (not y);
end xiaodou_arch;
(3).功能仿真波形:
2.移位寄存器
(1).74194功能验证电路
(2).74194功能仿真结果
仿真分析:
clrn=1,clk上升时,s为11,移位寄存器并行置数,此时abcd=1010,q_abcd=1010;
clrn=0,移位寄存器进行清零,此时有q_abcd=0000;
clrn=1,clk上升时,s为01,sl_sr为01,移位寄存器串行右移补1,输出q_abcd=1000;
clrn=1,clk上升时,s为01,sl_sr为10,移位寄存器串行右移补0,输出q_abcd=0100;
clrn=1,clk上升时,s为10,sl_sr为10,移位寄存器串行左移补1,输出q_abcd=1001;
clrn=1,clk上升时,s为10,sl_sr为01,移位寄存器串行左移补0,输出q_abcd=0010。
结论:输出结果与74194的真值表相符,得仿真验证正确。
思考题
1.VHDL元件例化语句作用是什么?如何调用标准的jkff(tff)元件?
答:元件例化是用于结构式描述方式时调用库元件或底层实体。元件例化是系统层次化设计的一种重要途径。
元件例化语句由元件声明语句和元件描述语句两部分构成。
格式:component 元件名
[generic <参数说明>;]
port <端口说明>;
end component;
标号:元件名 port map([端口名=>]信号名,...)
2.VHDl语言中边沿触发的signal如何描述?VHDL描述时序电路是signal的作用是什么?
答:上升沿:clk’=1 ; 下降沿:clk’=0
在时序电路中signal作为中间信号,起连线内部电路的作用。
3.lpm_ff定制时clear、load、set输入有哪两类?
答:clear、load、set有synchronous inputs和asynchronous inputs两类,S类为同步清零操作,A类为异步清零操作。
4.简单说明移位寄存器的概念及应用情况?
答:移位寄存器是用来寄存二进制数字信息且能进行信息移位的时序逻辑电路。根据移位寄存器存取信息的方式不同可分为串入串出、串入并出、并入串出、并入并出4种形式,并通过数码管显示出来。移位寄存器可构成计数器、顺序脉冲发生器、串行累加器、串并转换。
5.仿真常规步骤是什么?有什么注意事项?
答:
1、参数设置:Grid size 和 Endtime。
2、添加节点或总线后的信号整合与位置分配。注意事项:激励输入信号与待分析输出信号上下放置,界限分明;时钟信号置顶,其他信号按照“异步控制→同步控制→数据输入”顺序想下放置;
3、激励输入及分段仿真。注意事项:将时间轴分为连续的时间段,一时间段完成一小步实验内容,一小段信号激励输入完成后立即生成波形并判断结果;波形正确后再根据下一个实验内容,直至完成所有实验内容仿真。
6.如何保存用户的仿真结果波形?
答:产生仿真波形后选择
即可保存至波形文件中。
实验心得
此次实验,让我学习了VHDL语言中的元件例化,并学习编写顶层文件的VHDL代码,了解并掌握了74194移位寄存器的工作原理和功能实现。