实验八:利用有限状态机进行时序逻辑的设计
- 格式:doc
- 大小:36.00 KB
- 文档页数:3
实验八时序逻辑电路设计实验一、实验概述本实验是使用74LS74双D触发器构成一个扭环形计数器,以及使用74LS112双JK触发器构成三进制加法计数器。
二、实验目的1、掌握简单的时序电路的设计方法2、掌握简单时序电路的调试方法三、实验预习要求1、查找74LS74、74LS112、74LS00芯片引脚图,并熟悉引脚功能2、复习教材中异步2n进制计数器构成方法及同步2n进制计数器构成方法的内容3、复习同步时序电路和异步时序电路的设计方法4、设计画出用74LS74构成异步四进制减法计数器的逻辑电路图5、设计画出用74LS112构成同步四进制加法计数器的逻辑电路图四、实验原理时序逻辑电路是数字逻辑电路的重要组成部分,时序逻辑电路又称时序电路,主要由存储电路和组合逻辑电路两部分组成。
它和我们熟悉的其他电路不同,其在任何一个时刻的输出状态由当时的输入信号和电路原来的状态共同决定,而它的状态主要是由存储电路来记忆和表示的。
同时时序逻辑电路在结构以及功能上的特殊性,相较其他种类的数字逻辑电路而言,往往具有难度大、电路复杂并且应用范围广的特点。
时序逻辑电路通常可以分为同步时序逻辑电路和异步时序逻辑电路两大类。
同步时序逻辑电路从构成方式来讲,同步时序电路所有操作都是在同一时钟严格的控制下步调一致地完成的。
从电路行为上,同步电路的时序电路公用同一个时钟,而所有的时钟变化都是在时钟的上升沿(或下降沿)完成的。
同步逻辑是时钟之间存在固定因果关系的逻辑,所有时序逻辑都是在同源时钟控制下运行。
注意,在用Verilog HDL实现时,并不要求是同一时钟,而是同源时钟。
所谓的同源时钟是指同一个时钟源衍生频率比值为2的幂次方,且初相位相同的时钟。
异步时序逻辑电路异步时序逻辑电路,顾名思义就是电路的工作节奏不一致,不存在单一的主控时钟,主要是用于产生地址译码七、FIFO和异步RAM的读写控制信号脉冲。
除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件;电路状态改变完全有外部输入的变化直接引起。
实验八(一) 时序逻辑电路设计一、设计内容1.用JK 触发器设计一个8421码十进制同步加法计数器。
时钟信号CP 由实验箱的“单次”或1Hz 自动秒脉冲提供,计数器输出状态用实验箱上的LED 数码管检测,记录实验结果。
用实验箱上的1kHz 时钟信号作为计数器的计数脉冲CP ,用示波器观察并记录CP 及计数器各输出端的对应波形。
2.用D 或JK 触发器设计一个110串行序列信号检测器。
输入信号由电平输出器提供,时钟信号CP 接逻辑实验箱的“单次” 时钟信号。
当连续输入信号110时,该电路输出1,否则输出0。
设依次送入的信号为001101110。
3.用D 触发器设计一个同步四相时钟发生器,其输入时钟CP 及各输出波形如图实验8.1所示。
输入时钟CP 为1kHz 时钟信号,用示波器观察时钟信号CP 与各输出端对应的波形。
二、设计要求1.用Mutisim2001进行电路仿真。
2.画出时序逻辑电路原理图。
3.叙述集成触发器的逻辑功能和使用。
4.写出设计过程,并记录实验结果。
三、设计过程1. 用JK 触发器设计一个8421码十进制同步加法计数器。
(1).状态真值表:Q 1 Q 2Q 3Q 4 CPQ 1 Q 2 Q 3Q 4图实验8.1 四相时钟发生器输入、输出波形0 0,(3)电路图:2.用D 或JK 触发器设计一个110串行序列信号检测器。
(1)状态图:>C1>C1>C1>C1(2)原始状态表:A:00B:10 C:11现态((6)激励方程:,(7)电路图:3.用D 触发器设计一个同步四相时钟发生器。
(1).状态真值表:激励方程:,,, (3).电路图如下:Q>C1Q>C1。
北航实验报告封面(共8篇)北航惯性导航综合实验一实验报告实验一陀螺仪关键参数测试与分析实验加速度计关键参数测试与分析实验二零一三年五月十二日实验一陀螺仪关键参数测试与分析实验一、实验目的通过在速率转台上的测试实验,增强动手能力和对惯性测试设备的感性认识;通过对陀螺仪测试数据的分析,对陀螺漂移等参数的物理意义有清晰的认识,同时为在实际工程中应用陀螺仪和对陀螺仪进行误差建模与补偿奠定基础。
二、实验内容利用单轴速率转台,进行陀螺仪标度因数测试、零偏测试、零偏重复性测试、零漂测试实验和陀螺仪标度因数与零偏建模、误差补偿实验。
三、实验系统组成单轴速率转台、MEMS 陀螺仪(或光纤陀螺仪)、稳压电源、数据采集系统与分析系统。
四、实验原理1. 陀螺仪原理陀螺仪是角速率传感器,用来测量载体相对惯性空间的角速度,通常输出与角速率对应的电压信号。
也有的陀螺输出频率信号(如激光陀螺)和数字信号(把模拟电压数字化)。
以电压表示的陀螺输出信号可表示为:UGUG?0??kG??kGfG(a)?kG?G(1-1)式中fG(a)是与比力有关的陀螺输出误差项,反映了陀螺输出受比力的影响,本实验不考虑此项误差。
因此,式(1-1)简化为 UGUG?0??kG??kG?G(1-2)由(1-2)式得陀螺输出值所对应的角速度测量值:测量?UG?UG(0)(1-3) ??GkG对于数字输出的陀螺仪,传感器内部已经利用标度因数对陀螺仪模拟输出进行了量化,直接输出角速度值,即:测量??0??真值??G(1-4)?0是是陀螺仪的零偏,物理意义是输入角速度为零时,陀螺仪输出值所对应的角速度。
且UG(0)?kG?0 (1-5)?测量精度受陀螺仪标度因数kG、随机漂移?G、陀螺输出信号UG的检测精度和UG(0)的影响。
通常kG和UG(0)表现为有规律性,可通过建模与补偿方法消除,?G表现为随机特性,可通过信号滤波方法抵制。
因此,准确标定kG和UG(0)是实现角速度准确测量的基础。
有限状态机实验报告一、实验目的●进一步学习时序逻辑电路●了解有限状态机的工作原理●学会使用“三段式”有限状态机设计电路●掌握按键去抖动、信号取边沿等处理技巧二、实验内容用三段式有限状态机实现序列检测功能电路a)按从高位到低位逐位串行输入一个序列,输入用拨动开关实现。
b)每当检测到序列“1101”(不重叠)时,LED指示灯亮,否则灭,例如i.输入:1 1 0 1 1 0 1 1 0 1ii.输出:0 0 0 1 0 0 0 0 0 1c)用八段数码管显示最后输入的四个数,每输入一个数,数码管变化一次d)按键按下的瞬间将拨动开关状态锁存i.注意防抖动(按键按下瞬间可能会有多次的电平跳变)三、实验结果1.Rst_n为0时数码管显示0000,led灯不亮,rst_n拨为1,可以开始输入,将输入的开关拨到1,按下按钮,数码管示数变为0001,之后一次类推分别输入1,0,1,按下按钮后,数码管为1101,LED灯亮,再输入1,LED灯灭,之后再输入0,1(即共输入1101101使1101重叠,第二次LED灯不亮),之后单独输入1101,LED灯亮2.仿真图像刚启动时使用rst_n一段时间后其中Y代表输出,即控制led灯的信号,sel表示数码管的选择信号,seg表示数码管信号四、实验分析1、实验基本结构其中状态机部分使用三段式结构:2、整体结构为:建立一下模块:Anti_dither.v输入按键信号和时钟信号,输出去除抖动的按键信号生成的脉冲信号op这一模块实现思路是利用按钮按下时会持续10ms以上而上下抖动时接触时间不超过10ms来给向下接触的时间计时,达到上限时间才产生输出。
Num.v输入op和序列输入信号A,时钟信号clk和复位信号,复位信号将num置零,否则若收到脉冲信号则将num左移一位并将输入存进最后一位。
输出的num即为即将在数码管上显示的值Scan.v输入时钟信号,对其降频以产生1ms一次的扫描信号。
时序逻辑电路的设计与测试实验报告一、实验目的本实验旨在让学生掌握时序逻辑电路的设计与测试方法,了解时序逻辑电路的基本原理和特点,以及掌握时序逻辑电路的设计流程和测试方法。
二、实验原理1. 时序逻辑电路的基本原理时序逻辑电路是指由组合逻辑电路和存储器件组成的电路,具有记忆功能。
它能够根据输入信号的状态和过去的状态来决定输出信号的状态。
时序逻辑电路包括触发器、计数器、移位寄存器等。
2. 时序逻辑电路的特点(1)具有记忆功能,能够存储过去状态;(2)输出信号不仅与输入信号相关,还与过去状态相关;(3)具有延迟特性,输出信号需要一定时间才能稳定下来。
3. 时序逻辑电路的设计流程(1)确定功能要求;(2)选择合适的存储器件和触发器;(3)设计组合逻辑部分;(4)设计时钟控制部分;(5)综合验证。
4. 时序逻辑电路测试方法常用测试方法包括仿真测试和实际硬件测试。
仿真测试可以通过软件工具进行,实际硬件测试需要使用实验设备进行。
三、实验内容本次实验的内容为设计一个简单的计数器电路,该电路能够对输入信号进行计数,并将结果输出到LED灯上。
四、实验步骤1. 确定功能要求本次实验要求设计一个4位二进制计数器,能够对输入信号进行计数,并将结果输出到LED灯上。
2. 选择合适的存储器件和触发器本次实验选择D触发器作为存储器件,因为它具有较高的稳定性和可靠性。
同时,还需要选择合适的时钟控制电路,以确保计数器能够正常工作。
3. 设计组合逻辑部分组合逻辑部分主要包括加法器和译码器。
加法器用于将当前计数值加1,译码器则用于将二进制码转换成LED灯能够显示的十进制码。
4. 设计时钟控制部分时钟控制部分主要包括时钟发生电路和时序控制电路。
时钟发生电路用于产生稳定的时钟信号,时序控制电路则用于控制D触发器的输入端和输出端。
5. 综合验证综合验证包括仿真测试和实际硬件测试。
仿真测试可以通过软件工具进行,实际硬件测试需要使用实验设备进行。
实验八有限状态机一、实验目的1、进一步掌握时序仿真序列的时序条件设置;2、通过实验掌握有限状态机的要点和特点及其设计。
二、VHDL仿真实验(1)建立文件夹D:\alteral\EDAzuouye\che7-1,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。
图1 利用New Project Wizard创建工程FSM_EXP(2)打开文本编辑。
NEW→VHDL File→相应的输入源程序代码→存盘为FSM_EXP.vhd.。
图2 选择编辑文件类型源程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FSM_EXP ISPORT(clk,reset:IN STD_LOGIC;state_inputs :IN STD_LOGIC_VECTOR(0 TO 1);comb_outputs : OUT INTEGER RANGE 0 TO 15);END FSM_EXP;ARCHITECTURE behv OF FSM_EXP ISTYPE FSM_ST IS (s0,s1,s2,s3,s4);SIGNAL c_st,next_state:FSM_ST;BEGINREG:PROCESS(reset,clk) BEGINIF reset='0' THEN c_st<=s0;ELSIF clk='1' AND clk 'EVENT THEN c_st<=next_state;END IF; END PROCESS REG;COM:PROCESS(c_st,state_inputs) BEGINCASE c_st ISWHEN s0 => comb_outputs<=5;IF state_inputs="00" THEN next_state<=s0;ELSE next_state<=s1;END IF;WHEN s1=>comb_outputs<=8;IF state_inputs="01" THEN next_state<=s1;ELSE next_state<=s2;END IF;WHEN s2=>comb_outputs<=12;IF state_inputs="10" THEN next_state<=s0;ELSE next_state<=s3;END IF;WHEN s3=>comb_outputs<=14;IF state_inputs="11" THEN next_state<=s3;ELSE next_state<=s4;END IF;WHEN s4=>comb_outputs<=9;next_state<=s0;WHEN OTHERS=>next_state<=s0;END CASE;END PROCESS COM;END behv;(3)综合运行,检查设计是否正确。
实验八:利用有限状态机进行时序逻辑的设计一:利用有限状态机进行时序逻辑的设计的源程序:
module seqdet(x,z,clk,rst,state);
input x,clk,rst;
output z;
output[2:0] state;
reg[2:0] state;
wire z;
parameter IDLE='d0, A='d1, B='d2,
C='d3, D='d4,
E='d5, F='d6,
G='d7;
assign z = ( state==E && x==0 )? 1 : 0;
always @(posedge clk)
if(!rst)
begin
state <= IDLE;
end
else
casex(state)
IDLE : if(x==1)
begin
state <= A;
end
A: if(x==0)
begin
state <= B;
end
B: if(x==0)
begin
state <= C;
end
else
begin
state <= F;
end
C: if(x==1)
begin
state <= D;
end
else
begin
state <= G;
end
D: if(x==0)
begin
state <= E;
end
else
begin
state <= A;
end
E: if(x==0)
begin
state <= C;
end
else
begin
state <= A;
end
F: if(x==1)
begin
state <= A;
end
else
begin
state <= B;
end
G: if(x==1)
begin
state <= F;
end
default:state=IDLE;
endcase
endmodule
二:利用有限状态机进行时序逻辑的设计的测试代码:`timescale 1ns/1ns
`include "./seqdet.v"
module seqdet_Top;
reg clk,rst;
reg[23:0] data;
wire[2:0] state;
wire z,x;
assign x=data[23];
always #10 clk = ~clk;
always @(posedge clk)
data={data[22:0],data[23]};
initial
begin
clk=0;
rst=1;
#2 rst=0;
#30 rst=1;
data ='b1100_1001_0000_1001_0100;
#500 $stop;
end
seqdet m(x,z,clk,rst,state);
endmodule
三:Transcript显示结果:
# Reading E:/altera/91/modelsim_ase/tcl/vsim/pref.tcl
# Loading project fulladder8
# reading E:\altera\91\modelsim_ase\win32aloem/../modelsim.ini # Loading project ssss
# Compile of seqdet.v was successful.
# Compile of seqdet_Top.v was successful.
# 2 compiles, 0 failed with no errors.
vsim work.seqdet_Top
# vsim work.seqdet_Top
# Loading work.seqdet_Top
# Loading work.seqdet
四:测试波形如下图所示:。