
微操作和寄存器传送语言.ppt
53页5.1 5.1 微操作和寄存器传送语言微操作和寄存器传送语言5.2 5.2 用用RTLRTL表示数字系统表示数字系统5.3 5.3 复杂数字系统和复杂数字系统和RTLRTL5.4 5.4 实例:实例:VHDLVHDL--VHSICVHSIC硬件描述语言硬件描述语言第五章 寄存器传送语言同济大学 软件学院微操作:微操作:大部分时序数字系统的基础大部分时序数字系统的基础 是更简单的行为是更简单的行为 ◆ 数数据据从从一一个个寄寄存存器器、、存存储储器器单单元元或或者者I/OI/O设设 备到另一个的传送备到另一个的传送 ◆ 修改存储的值修改存储的值 ◆ 执行算术或逻辑功能执行算术或逻辑功能 ◆ 修改已存储的值修改已存储的值确定时序数字系统:确定正确的微操作传送及其条件确定正确的微操作传送及其条件 (这些条件保证微操作按正确的顺序执行)(这些条件保证微操作按正确的顺序执行)设计时序数字系统: ◆ 首先用微操作表述系统的行为首先用微操作表述系统的行为 ◆ 设计硬件来匹配这些表述设计硬件来匹配这些表述 5.1 微操作和寄存器传送语言 一、微操作的格式 考虑有两个考虑有两个1 1位寄存器位寄存器X X和和Y Y的一个数字系统。
的一个数字系统 1.1.拷拷贝贝寄寄存存器器Y Y的的内内容容到到寄寄存存器器X X中中的的微微操操作作 X←YX←Y ( (有时也可以表示为有时也可以表示为Y→XY→X) ) 2. 2.两种实现两种实现 ◆ 由直接连接实现由直接连接实现 ◆ 通过总线连接实现通过总线连接实现X二、传送发生的条件1. 1. 假定传送应发生在输入控制假定传送应发生在输入控制αα为高时,为高时, 则传送过程可以写为则传送过程可以写为 IF α THEN X←YIF α THEN X←Y2. 2. 表示微操作和它们发生的条件:表示微操作和它们发生的条件: 条件:微操作条件:微操作 当所有冒号左边的条件满足时,执行微操作当所有冒号左边的条件满足时,执行微操作 (可以是多个)规定的数据传送可以是多个)规定的数据传送3. 3. 上面的传送可以写为上面的传送可以写为αα::X←YX←Y4.4.具有控制信号的数据传送具有控制信号的数据传送αα::X←YX←Y的实现的实现 (a) (a) 用直接通路用直接通路 (b) (b) 用总线用总线X三、提高系统性能的一种方法 同时执行两个或多个微操作。
同时执行两个或多个微操作1. 1. 如果某系统在如果某系统在α= 1α= 1时执行时执行X←YX←Y和和Y←ZY←Z的传的传 送,则这种情况可以表示成送,则这种情况可以表示成α: X←Yα: X←Y,,Y←ZY←Z ( (α: Y←Zα: Y←Z,,X←YX←Y) )2 2.同时拷贝相同的数据到多个目的地.同时拷贝相同的数据到多个目的地 考虑考虑 αα:: X←Y X←Y,,Z←YZ←Y 3 3.数字系统不能同时往同一寄存器中写入两个不同的值.数字系统不能同时往同一寄存器中写入两个不同的值 例如:例如: 表示表示 α: X←Y α: X←Y,,X←Z X←Z 无效无效 四、传送常量的有效条件和微操作α: X←0α: X←0β: X←1β: X←1 实现这两个传送的三种不同方法:实现这两个传送的三种不同方法: ◆ 通过两个传送通路装载数据来设置通过两个传送通路装载数据来设置X X的值的值 ( (用一个多路选择器来选择输入的数据用一个多路选择器来选择输入的数据) )◆ 装载数据与第一个完全相同,但它的数据直接由装载数据与第一个完全相同,但它的数据直接由 信号信号ββ产生。
产生 (用用ββ作为数据输入作为数据输入) )◆ 为简化硬件可使用寄存器的清除输入功能为简化硬件可使用寄存器的清除输入功能 ( (用用CLRCLR信号信号) )问题:问题:当当αα和和ββ同时为同时为1 1时,怎么办?时,怎么办?两种解决方法:两种解决方法: ◆ 产生产生αα和和ββ的硬件能保证它们决不会被同时置为的硬件能保证它们决不会被同时置为1 1 ◆ 修改条件使它们互斥修改条件使它们互斥 αβ’: αβ’: X←0 X←0 α: α: X←0 X←0 αβ’: αβ’: X←0X←0 β β : : X←1 X←1 α’β: α’β: X←1 X←1 α’β: α’β: X←1X←1五.寄存器之间的多位数据传送1. 1. 同样大小寄存器对应位之间传送数据同样大小寄存器对应位之间传送数据 例如例如: : 当当αα==1 1时,从时,从4 4位寄存器位寄存器Y Y传送数据到传送数据到4 4 位寄存器位寄存器X X。
用符号表示:用符号表示: αα:: X←Y X←Y (a) (a) 用直接连接用直接连接 (b) (b) 用总线用总线2. 2. 访问一个寄存器的某一位或位组访问一个寄存器的某一位或位组 表示每一位:如表示每一位:如X X3 3或或Y Y2 23. 3. 表示位组(用一个域表示)表示位组(用一个域表示) 如:如:X X3 3、、X X2 2和和X X1 1可以写成:可以写成:X(3-1)X(3-1)或或X(3:1)X(3:1) α: X(3-1)←Y(2-0)α: X(3-1)←Y(2-0) β: X β: X3 3←X←X2 2 γ: X(3-0)←X(2-0),X γ: X(3-0)←X(2-0),X3 3 ((X(2-0,3)X(2-0,3)或或X X3 3←X←X2 2,,X X2 2←X←X1 1,,X X1 1←X←X0 0,,X X0 0←X←X3 3))六、执行算术运算、逻辑运算和移位运算的微操作1 1.一些常用的算术运算和逻辑运算的微操作.一些常用的算术运算和逻辑运算的微操作 操操 作作 示示 例例 Add Add X←X + Y X←X + Y Subtract Subtract X←X – Y X←X – Y 或或 X←X + Y’ + 1 X←X + Y’ + 1 Increment Increment X←X + 1 X←X + 1 Decrement Decrement X←X – 1 X←X – 1 And And X←X ∧ Y X←X ∧ Y 或或 X←XY X←XY OR OR X←X ∨ Y X←X ∨ Y XOR XOR X←X ⊕ Y X←X ⊕ Y NOT NOT X←/X X←/X 或或 X←X’ X←X’ 2 2.移位微操作.移位微操作 ◆ 线性移位:线性移位:每一位的值依次向左(或右)移位。
每一位的值依次向左(或右)移位 最后最后1 1位被丢弃,空位补入位被丢弃,空位补入0 0值 例如:例如: X X==10111011 左移一位:左移一位:01100110 右移一位:右移一位:01010101 ◆ 循环移位:循环移位:将性移位中被丢弃的位循环回来将性移位中被丢弃的位循环回来 替代补入的替代补入的0 0值 例如:例如: X X==10111011 循环左移:循环左移:01110111 循环右移:循环右移:11011101◆ 算术移位:算术移位:用于带符号数的移位用于带符号数的移位算术左移:各位按位左移,最高位向左移出,最低位算术左移:各位按位左移,最高位向左移出,最低位 产生的空位填产生的空位填“0”“0”。
算术右移:连同符号位一起向右移一位算术右移:连同符号位一起向右移一位, ,符号位保持不变符号位保持不变 例如:例如: X X==10111011 算术左移:算术左移:01100110 算术右移:算术右移:11011101◆ 十进制移位:十进制移位:专门用于专门用于BCDBCD表示十进制移位与线性表示十进制移位与线性 移位很相似,但它移动移位很相似,但它移动1 1个数字或个数字或4 4位,位, 而不是移动而不是移动1 1位 例如:例如:X X==1001 01111001 0111 十进制左移:十进制左移:0111 00000111 0000 十进制右移:十进制右移:0000 10010000 1001 操操 作作 示示 例例 线性左移线性左移 shl(X) shl(X) 线性右移线性右移 shr(X) shr(X) 循环左移循环左移 cil(X) cil(X) 循环右移循环右移 cir(X) cir(X) 算术左移算术左移 ashl(X) ashl(X) 算术右移算术右移 ashr(X) ashr(X) 十进制左移十进制左移 dshl(X) dshl(X) 十进制右移十进制右移 dshr(X) dshr(X)◆ 移位操作和它们的表示法移位操作和它们的表示法 例如:例如:X←shl(X)X←shl(X)和和shl(X)shl(X)是等价的。
是等价的 Y←shl(X) Y←shl(X) 两个寄存器均需指定两个寄存器均需指定 七、寄存器与存储器之间的数据传送 例如:例如: M[55]←ACM[55]←AC和和AC←M[55]AC←M[55] 寄存器寄存器ACAC与存储器中与存储器中5555号单元之间的数据传送号单元之间的数据传送更好的方法:更好的方法:把地址存入寄存器中,然后由寄存器提供把地址存入寄存器中,然后由寄存器提供 存储器的访问地址存储器的访问地址 (地址寄存器,标示为(地址寄存器,标示为ARAR)) AR←55AR←55 M[AR]←AC M[AR]←AC或者或者AC←M[AR]AC←M[AR](( M←AC M←AC和和AC←MAC←M))5.2.1 数字元件表示 一、第一个例子( D触发器)) 1. 1. 用用RTLRTL描述描述 LDLD::Q←DQ←DD D触发器:触发器:(a)(a)无清无清0 0输入端输入端 (b) (b)有清有清0 0输入端输入端5.2 用RTL表示数字系统2. 2. 有一同步清有一同步清0 0输入端的输入端的D D触发器触发器 LDLD:: Q←D Q←D CLR CLR:: Q←0 Q←0 ◆ 当当D D、、LDLD和和CLRCLR都等于都等于1 1时,系统会失败。
时,系统会失败 解决方法:解决方法:改变条件使得两者互斥改变条件使得两者互斥 CLR’LDCLR’LD:: Q←D LD Q←D LD:: Q←D Q←D CLR CLR:: Q←0 LD’CLR Q←0 LD’CLR:: Q←0 Q←0 二、第二个例子(一个没有CLR输入端的JK触发器) 用用RTLRTL描述:描述: J’KJ’K:: Q←0 Q←0 JK’ JK’:: Q←1 Q←1 JK JK :: Q←Q’ Q←Q’三、最后一个例子(一个n位的移位寄存器) ◆ Q Qn-1n-1是最高位,是最高位,Q Q0 0是最低位;是最低位; ◆ 当当SHLSHL信号为高时,它将其中的数据左移一位;信号为高时,它将其中的数据左移一位; ◆ 输入输入S Sinin移进最低位。
移进最低位 移位寄存器:移位寄存器: SHLSHL:: Q←Q(n-2:0),S Q←Q(n-2:0),Sinin5.2.2 简单系统的表示与实现 例如:例如: 一个有一个有4 4个个1 1位触发器的系统位触发器的系统 ◆ 用用RTLRTL代码表示传送代码表示传送 (假设条件(假设条件j j,,o o,,h h和和n n是互斥的)是互斥的) j: M←Aj: M←A o: A←Y o: A←Y h: R←M h: R←M n: Y←R , M←R n: Y←R , M←R ◆ 几种不同的方法实现几种不同的方法实现 1.用直接连接实现系统的数据通路 (1)(1) 用直接连接实现的该用直接连接实现的该RTLRTL代码的系统的数据通路代码的系统的数据通路 (2)(2) 用直接连接实现该用直接连接实现该RTLRTL代码的系统的完整设计代码的系统的完整设计 在合适的时间激励触发器的在合适的时间激励触发器的LDLD信号来装载数信号来装载数 据,从而完成传送。
据,从而完成传送 ◆ 当当j=1j=1((M←AM←A)或)或n=1(M←R) n=1(M←R) 时,触发器时,触发器M M 装载数据装载数据 ◆ 在满足单个条件在满足单个条件o o、、h h和和n n时,触发器时,触发器A A、、R R和和Y Y 装载数据装载数据 j: M←A o: A←Y h: R←M n: Y←R ,M←R2.用总线和三态门实现 j: M←Ao: A←Yh: R←Mn: Y←R ,M←R 3. 用总线和多路选择器 实现 j: M←Ao: A←Yh: R←Mn: Y←R ,M←R5.3.1 模6计数器目的目的: : 设计一个模设计一个模6 6计数器计数器步骤:步骤: ◆ 用用RTLRTL表示计数器的功能表示计数器的功能 ◆ 用数字逻辑实现用数字逻辑实现RTLRTL的代码的代码模模6 6计数器:计数器: 000→001→010→011→100→101→000→… 000→001→010→011→100→101→000→… (0→1→2→3→4→5→0…) (0→1→2→3→4→5→0…)5.3 更复杂数字系统和RTL假设:假设: 输入端输入端U U:控制计数:控制计数 ◆ 当当U U==1 1时,计数器在时钟的上升沿增加它的值。
时,计数器在时钟的上升沿增加它的值 ◆ 当当U U==0 0时,不管时钟的值如何,它都保持当前时,不管时钟的值如何,它都保持当前 值不变 输出输出V V2 2V V1 1V V0 0:计数器的值:计数器的值 进位输出:进位输出:C C 状态:状态:S S0 0→S→S1 1→S→S2 2→S→S3 3→S→S4 4→S→S5 5→S→S0 0→…→… (两个另外状态(两个另外状态S S6 6和和S S7 7))模6计数器的状态表和状态图 当前状态当前状态U U下一状态下一状态C CV V2 2V V1 1V V0 0 S S0 0 0 0 S S0 0 1 1 000 000 S S0 0 1 1 S S1 1 0 0 001 001 S S1 1 0 0 S S1 1 0 0 001 001 S S1 1 1 1 S S2 2 0 0 010 010 S S2 2 0 0 S S2 2 0 0 010 010 S S2 2 1 1 S S3 3 0 0 011 011 S S3 3 0 0 S S3 3 0 0 011 011 S S3 3 1 1 S S4 4 0 0 100 100 S S4 4 0 0 S S4 4 0 0 100 100 S S4 4 1 1 S S5 5 0 0 101 101 S S5 5 0 0 S S5 5 0 0 101 101 S S5 5 1 1 S S0 0 1 1 000 000 S S6 6 X X S S0 0 1 1 111 111 S S7 7 X X S S0 0 1 1 111 111110一、用RTL表示系统 ((S0+S1+S2+S3+S4))U:: V←V+1 , C←0 S5U :: V←0 ,,C←1 S6 + S7 :: V←0 , C←1 在在条条件件((S S0 0+S+S1 1+S+S2 2+S+S3 3+S+S4 4+S+S5 5))U’ U’ 下下,,计计数数器器保保持持当当前值与前值与C C值不变。
值不变 可以用两条可以用两条RTLRTL语句表示:语句表示: ((S S5 5U U和和S S6 6 + S + S7 7触发相同的微操作)触发相同的微操作) ((S0+S1+S2+S3+S4))U:: V←V+1,,C←0 S5U++S6++S7:: V←0,,C←1二、模6计数器RTL代码的两种实现 ◆ 用一个寄存器用一个寄存器((S0+S1+S2+S3+S4))US5U++S6++S7◆ 用一个计数器(简单)用一个计数器(简单)U(V 2 ’’ + V1 ’’ V0 ’)’)V 2 V1 + V 2 V0 U5.3.2 收费站控制器1. 两个外部传感器 ◆ C C显示车辆是否在收费站中显示车辆是否在收费站中 当车在时,当车在时,C C==1 1,否则,否则C C==0 0 ◆ 显示硬币是否已经投到收费站的收集篮中以及显示硬币是否已经投到收费站的收集篮中以及 硬币的面值硬币的面值• 没有硬币投入没有硬币投入 I I1 1I I0 0==0000• 投入五分硬币投入五分硬币 I I1 1I I0 0==0101• 投入一角硬币投入一角硬币 I I1 1I I0 0==1010• 投入投入2525分硬币分硬币 I I1 1I I0 0==11112. 两个输出指示灯和一个警报灯 ◆ 当一辆汽车驶入收费站时,红灯(当一辆汽车驶入收费站时,红灯(R R)亮,)亮, 直到司机投入直到司机投入3535分硬币,此时红灯熄灭,绿灯分硬币,此时红灯熄灭,绿灯 (G) (G)亮,绿灯保持亮着直到汽车离开收费站;亮,绿灯保持亮着直到汽车离开收费站; ◆ 当绿灯灭时,红灯又亮了。
当绿灯灭时,红灯又亮了 ◆ 如果没有付足够的通行费,汽车离开,红灯一直如果没有付足够的通行费,汽车离开,红灯一直 保持亮着且警报(保持亮着且警报(A A)响 ◆ 警报维持到另一辆汽车驶入收费站;然后停止警报维持到另一辆汽车驶入收费站;然后停止一、控制器的状态表和状态图状态状态 条条 件件R G ASNOCAR车站中无车车站中无车 1 0 0S0站中有车,未付费站中有车,未付费 1 0 0S5站中有车,已付费站中有车,已付费5分分 1 0 0S10站中有车,已付费站中有车,已付费10分分 1 0 0S15站中有车,已付费站中有车,已付费15分分 1 0 0S20站中有车,已付费站中有车,已付费20分分 1 0 0S25站中有车,已付费站中有车,已付费25分分 1 0 0S30站中有车,已付费站中有车,已付费30分分 1 0 0SPAID站中有车,已付足过路费站中有车,已付足过路费 0 1 0SCHEAT未付足过路费就离开车站未付足过路费就离开车站 1 0 1当当 前前 状状 态态 C I1I0下下一一状态状态 R G A 当当 前前状态状态 C I1I0下下 一一状态状态 R G ASNOCAR1XXS0100 S150XXSCHEAT101SPAID0XXSNOCAR100 S15101S20100SCHEAT1XXS0100 S15110S25100S00XXSCHEAT101 S15111SPAID010S0101S5100 S200XXSCHEAT101S0110S10100 S20101S25100S0111S25100 S20110S30100S50XXSCHEAT101 S20111SPAID010S5101S10100 S250XXSCHEAT101S5110S15100 S25101S30100S5111S30100 S25110SPAID010S100XXSCHEAT101 S25111SPAID010S10101S15100 S300XXSCHEAT101S10110S20100 S30101SPAID010S10111SPAID010 S30110SPAID010 S30111SPAID010 状状 态态T R G ASNOCAR 0000 1 0 0S0 0001 1 0 0S5 0010 1 0 0S10 0011 1 0 0S15 0100 1 0 0S20 0101 1 0 0S25 0110 1 0 0S30 0111 1 0 0SPAID 1000 0 1 0SCHEAT 1001 1 0 1Unused 1010-1111 1 0 0收费站控制器状态赋值收费站控制器状态赋值 二、将状态表转换成RTL语句1. 1. 当控制器状态为当控制器状态为S SNOCARNOCAR且且C C==1 1,它转换到状态,它转换到状态S S0 0,, 此状态值为此状态值为00010001。
(假设状态值存于(假设状态值存于4 4位寄存器位寄存器T T中)中) S SNOCAR NOCAR C C:: T←0001 T←0001 如果我们想在每次传送后设置输出值,此状如果我们想在每次传送后设置输出值,此状 态不得不包含微操作态不得不包含微操作R←1R←1,,G←0G←0和和A←0A←02. 2. 状态状态S SPAIDPAID和和S SCHEATCHEAT各仅有一个转移情况各仅有一个转移情况 S SPAIDPAIDC’C’:: T←0000 T←0000 S SCHEATCHEATC C :: T←0001 T←00013. 3. 状态状态S S0 0在状态表中有四种可能的转移情况在状态表中有四种可能的转移情况 S S0 0C’ : T←1001C’ : T←1001 S S0 0CICI1 1’I’I0 0 : T←0010: T←0010 S S0 0CICI1 1I I0 0’ : T←0011’ : T←0011 S S0 0CICI1 1I I0 0 : T←0110: T←01104. 4. 对于其他状态,可以用同样的方法得到其对于其他状态,可以用同样的方法得到其RTLRTL代码。
代码 5. 5. 最终的入口是所有的无用状态均无条件转移到状态最终的入口是所有的无用状态均无条件转移到状态 0000 0000 6. 6. 整个控制器除输出之外的代码整个控制器除输出之外的代码 SNOCARC::T←0001 S15CI1’I0::T←0101SPAIDC’::T←0000 S15CI1I0’::T←0110SCHEATC::T←0001 S15CI1I0::T←1000S0C’::T←1001 S20C’::T←1001S0CI1’I0::T←0010 S20CI1’I0::T←0110S0CI1I0’::T←0011 S20CI1I0’::T←0111S10CI1I0::T←1000 S30CI1I0::T←1000S15C’::T←1001 T3(T2+T1)::←0000S0CI1I0::T←0110S20CI1I0::T←1000S5C’::T←1001 S25C’::T←1001S5CI1’I0::T←0011 S25CI1’I0::T←0111S5CI1I0’::T←0100 S25CI1I0’::T←1000S5CI1I0::←0111S25CI1I0::T←1000S10C’::T←1001 S30C’::T←1001S10CI1’I0::T←0100S30CI1’I0::T←1000S10CI1I0’::T←0101S30CI1I0’::T←1000三、扩展RTL代码产生输出 SPAIDC’::R←1,,G←0 SCHEATC’::R←1,,G←0,,A←0 SNOCARC::R←1,,G←0,,A←0 S0C’::A←1 S5C’::A←1 S10C’::A←1 S10CI1I0::R←0,,G←1 S15C’::A←1 S15CI1I0:R←0,G←1 S20C’::A←1 S20CI1I0::R←0,,G←1 S25C’::A←1S25CI1I0’::R←0,,G←1 S25CI1I0::R←0,,G←1 S30C’::A←1S30CI1’I0::R←0,,G←1S30CI1I0’::R←0,,G←1 S30CI1I0::R←0,,G←1T3(T2+T1)::R←1,,G←0,,A←0四、收费站控制器的完整RTL代码 (S0+S5+S10+S15+S20+S25+S30)C’::T←1001 SPAIDC’::T←0000 (SNOCAR+SCHEAT)C::T←0001 S0CI1’I0::T←0010 S0CI1IO’::T←0011 S0CI1I0::T←0110 S5CI1’I0::T←0011 S5CI1IO’::T←0100 S5CI1I0::T←0111 S10CI1’I0::T←0100 S10CI1IO’::T←0101 S10CI1I0::T←1000 S15CI1’I0::T←0101 S15CI1IO’::T←0110 S15CI1I0::T←1000 S20CI1’I0::T←0110 S20CI1IO’::T←0111 S20CI1I0::T←1000 S25CI1’I0::T←0111 S25CI1::T←1000 S30C(I1+I0)::T←100 T3(T2+T1)::T←0000 SPAIDC’::R←1,,G←0 (SNOCAR+SCHEAT)C::R←1,,G←0,,A←0 (S0+S5+S10+S15+S20+S25+S30)C’::A←1 (S10+S15+S20+S25+S30)CI1I0::R←0,,G←1 (S25+S30)CI1I0’::R←0,,G←1 S30CI1’I0::R←0,,G←1 T3(T2+T1)::R←1,,G←0,,A←0。









![2019版 人教版 高中语文 必修 上册《第一单元》大单元整体教学设计[2020课标]](http://img.jinchutou.com/static_www/Images/s.gif)


