《时序电路实验报告.doc》由会员分享,可在线阅读,更多相关《时序电路实验报告.doc(10页珍藏版)》请在三一办公上搜索。
1、时序电路实验说明:在实验原理图中的框图中,第一步的产生环形脉冲是指产生Q4Q1:1000-1100-1110-0000-1000,产生的译码后的节拍电位是指T40T41:0001-0010-0100-1000-0001,最后通过启停控制逻辑,启动,单拍,停机控制T40T41怎么输出。但是为什么环形脉冲没有1111这一个状态呢,为什么在0111就归零了呢?分析电路图可知,因为节拍电位只有4个状态,所以在环形脉冲的设计中忽略了1111,当然也可以设计成没有0000这个状态。先解释机器周期、节拍电位、时标脉冲。机器周期的时间宽度通常对应于一个内存存取周期,即一个机器周期可以访问一次内存。机器周期分为
2、多种类型,如取指令周期、取操作数周期、执行周期等。一条指令从内存中取出到被执行完需要若干个不同类型的机器周期,但任何指令的第一个周期都是取指令周期,每个机器周期包含若干个节拍电位。节拍电位是控制操作顺序的信号,各节拍电位在时间上不重叠。节拍电位由主振分频得到。其宽度对应于运算器执行一次算术/逻辑运算所需要的时间,一个节拍电位包括若干时标脉冲。时标脉冲用来保证计算机内触发器的可靠翻转,它的宽度为节拍电位的几分之一。以上内容书上也有,下面举例来解释这3个概念。 一条指令有分为取指周期,译码周期,执行周期。如比较熟悉的取指周期中就有FETCH1: ARPCFETCH2: DRM,PCPC1FETCH
3、3: IRDR7.6,ARDR5.0FETCH1,FETCH2,FETCH3为3条微指令。每条微指令都对应相应的控制信号,如FETCH1就是ARLOAD有效,其余控制信号均无效。时标脉冲是指在节拍电位中,产生控制信号逻辑的每个时钟信号;节拍电位就是产生一组控制信号逻辑,FETCH1、FETCH2、FETCH3分别对应3个节拍电位;机器周期就是整个取指周期,包括3个节拍电位。下面解释实验原理图:第一个7474是产生清零信号和时钟信号,清零信号是当Q2=1时,在时钟上升沿CLRN=0,CLK=1,在其他时候CLK与H的信号一致。所以有CLRN=(Q2H),CLK=Q2+H。74175是为了产生环形
4、脉冲的,环形脉冲Q4Q1为1000-1100-1110-0000-1000,Q*表示次态,Q表示现态。所以Q4*=CLRN,Q3*=Q4CLRN,Q2*=Q3CLRN,Q1*=0,在74175中体现出来就是4D=1,3D=Q4,2D=Q3,1D=Q2。产生译码后的节拍电位可以根据卡洛图得逻辑表达式,除了Q4Q1的几个状态,其余的都作为无关项理解。Q4Q1: 1000-1100-1110-0000-1000对应T40T41:0001-0010-0100-1000-0001,有:T40=Q4, T30=Q2,T20= Q3Q2, T10= Q4Q3,第二个7474和组合逻辑是产生启停控制逻辑的。通
5、过产生的控制信号与T40T41进行与运算,最后得到真正的节拍电位。QD是通过锁存器产生,由于单拍和启动信号都与周期有关,也就是可以理解为,周期结束后单拍和启动信号才发挥作用,一个是让输出全为0,一个是输出为T40T41,所以通过7474,来控制信号什么时候有效,所以连接的时钟信号与Q4一致,单拍时D=0,启动时D=1,会发现中间有反馈信号,这个是因为单拍和停机都必须在启动状态下才有效,所以有这样一个连接。另外在锁存器后连接了一个与非门和与门,这个我觉得是用来判断优先级的,因为启动状态时,只有当单拍和停机都无效时D=1,而单拍和停机都有效时D=0,当然中间的停机信号设计有问题。1.电路设计时序电
6、路LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY SM1 IS PORT (复位信号启动信号单步信号停机信号 reset : IN STD_LOGIC := 0;启动信号单步信号停机信号 clock : IN STD_LOGIC; qd : IN STD_LOGIC := 0; dp : IN STD_LOGIC := 0; tj : IN STD_LOGIC := 0; t1 : OUT STD_LOGIC;时序脉冲信号启动信号单步信号停机信号 t2 : OUT STD_LOGIC; t3 : OUT STD_LOGIC; t4 : OUT S
7、TD_LOGIC );END SM1;ARCHITECTURE BEHAVIOR OF SM1 IS TYPE type_fstate IS (idle,st1,s_st2,st4,st2,s_st3,st3,s_st4); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate;BEGIN PROCESS (clock,reset,reg_fstate) BEGIN IF (reset=1) THEN fstate = idle; ELSIF (clock=1 AND clockevent) THEN fstate = reg
8、_fstate; END IF; END PROCESS; PROCESS (fstate,qd,dp,tj) BEGIN t1 = 0; t2 = 0; t3 = 0; t4 IF (NOT(qd = 1) THEN reg_fstate = st1; ELSE reg_fstate = idle; END IF; t1 = 0; t2 = 0; t3 = 0; t4 IF (tj = 1) AND NOT(dp = 1) THEN reg_fstate = st1; ELSIF (dp = 1) AND NOT(tj = 1) THEN reg_fstate = s_st2; ELSE r
9、eg_fstate = st2; END IF; t1 = 1; t2 = 0; t3 = 0; t4 IF (tj = 1) THEN reg_fstate = s_st2; ELSE reg_fstate = s_st3; END IF; t1 = 0; t2 = 1; t3 = 0; t4 IF (tj = 1) AND NOT(dp = 1) THEN reg_fstate = st4; ELSIF (dp = 1) AND NOT(tj = 1) THEN reg_fstate = idle; ELSE reg_fstate = st1; END IF; t1 = 0; t2 = 0
10、; t3 = 0; t4 IF (tj = 1) AND NOT(dp = 1) THEN reg_fstate = st2; ELSIF (dp = 1) AND NOT(tj = 1) THEN reg_fstate = s_st3; ELSE reg_fstate = st3; END IF; t1 = 0; t2 = 1; t3 = 0; t4 IF (tj = 1) THEN reg_fstate = s_st3; ELSE reg_fstate = s_st4; END IF; t1 = 0; t2 = 0; t3 = 1; t4 IF (tj = 1) AND NOT(dp =
11、1) THEN reg_fstate = st3; ELSIF (dp = 1) AND NOT(tj = 1) THEN reg_fstate = s_st4; ELSE reg_fstate = st4; END IF; t1 = 0; t2 = 0; t3 = 1; t4 IF (tj = 1) THEN reg_fstate = s_st4; ELSE reg_fstate = idle; END IF; t1 = 0; t2 = 0; t3 = 0; t4 t1 = X; t2 = X; t3 = X; t4 0-1111101-0-10tj停机信号0000-1-000100dp单步
12、信号000010010t4.0时序信号00000001-0010-0100-1000-000100100010-0100-100000010001-0010-01000000功能说明启动时序发生器,但并未产生时序脉冲启动时序发生器,T4T1,周而复始的发送出去停机状态是,机器不产生时序脉冲单步状态机器发出一个CPU周期就停止停机状态优先,即使此时处于启动单步状态优先,即使此时处于启动复位状态优先,之后若未启动,单步状态无效实验结论验证成功实验箱验证验证仪器FLEX10K系列的EPF10K20TC144-3芯片DDA-I型实验箱管脚名管脚功能管脚分配情况123456clk时钟信号122时钟上升沿
13、reset置位信号830(无效)1(有效)qd启动信号8210110Xtj停机信号800(无效)X101Xdp单步信号810(无效)X011Xt4.1时序信号118,11,7,116,11400000001-0010-0100-1000-000101000100-100010000000功能说明启动时序发生器,但并未产生时序脉冲启动时序发生器,T4T1周而复始发送出去停机状态是,机器不产生时序脉冲单步状态,机器只发出一个CPU周期就停止停机状态优先,即使此时处于启动复位状态优先,之后若未启动,单步状态无效实验结论实验操作正确,验证正确实验日志思考题(1) 时序电路实行了哪几种启停控制逻辑?答:
14、实现了启动、单拍、停机等控制信号来控制(2) 举例说明机器周期,节拍,脉冲。答: 机器周期:从内存中读取一个指令字的最短时间。 本实验中,相当于输出一组T1、T2、T3、T4节拍脉冲所用的时间 节拍与脉冲:一个节拍电位表示一个CPU周期的时间。一个节拍电位中包含若干个节拍脉冲,节拍脉冲表示较小的时间单位。(3) 如何进入单步运行状态?答: 先置dp=0,tj=0,qd由0变化到1,然后令dp=1,即可使机器进入到单步运行状态中。 其用途为:每次只读取一条指令,可观察当前执行结果。(4) 时序电路参考电路图4-5-3中的停机控制电路未能实现停机功能,如何修改?答:实现全停全停全停全停功能,电路修
15、改如下: 7474 CLRN的输入为TJ的反,通过反相器实现,原来为直接接高电平。即在使得TJ=1的时候,CLRN有效,则清零,即全停。 实现暂停暂停暂停暂停功能,电路修改如下: 添加一个新的输入控制信号,将其与H的反做或运算,运算的结果作为图中7474的时钟的输入。 日志1. 时序电路响应QD低电平时启动,试述VHDL中如何如果实现响应QD下降沿?(1)qd : IN STD_LOGIC := 0;/改为qd : IN STD_LOGIC := 1;(2)CASE fstate IS WHEN idle = IF (NOT(qd = 1) THEN/改为IF (NOT(qd = 0) THEN reg_fstate = st1; ELSE reg_fstate = idle; END IF;2. 时序电路中状态及产生连续节拍脉冲T1+T2+T3+T4,脉冲间是连续无延时,试述如何修改产生脉冲T1+3clock+T2+5clock+T3+7clock+T4(3clock表示3个时钟周期延时)?答:用TJ信号控制,此信号控制相应的周期延时。