




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.1 5.1 微操作和寄存器传送语言微操作和寄存器传送语言5.2 5.2 用用RTLRTL表示数字系统表示数字系统5.3 5.3 复杂数字系统和复杂数字系统和RTLRTL5.4 5.4 实例:实例:VHDLVHDLVHSICVHSIC硬件描述语言硬件描述语言第五章 寄存器传送语言同济大学 软件学院微操作:大部分时序数字系统的基础。微操作:大部分时序数字系统的基础。 是更简单的行为。是更简单的行为。 数据从一个寄存器、存储器单元或者数据从一个寄存器、存储器单元或者I/OI/O设设 备到另一个的传送备到另一个的传送 修改存储的值修改存储的值 执行算术或逻辑功能执行算术或逻辑功能 修改已存储的值修
2、改已存储的值确定时序数字系统:确定正确的微操作传送及其条件。 (这些条件保证微操作按正确的顺序执行)设计时序数字系统: 首先用微操作表述系统的行为 设计硬件来匹配这些表述 5.1 微操作和寄存器传送语言 一、微操作的格式 考虑有两个1位寄存器X和Y的一个数字系统。 1.拷贝寄存器Y的内容到寄存器X中的微操作 XY (有时也可以表示为YX) 2.两种实现 由直接连接实现 通过总线连接实现X二、传送发生的条件1. 假定传送应发生在输入控制为高时, 则传送过程可以写为 IF THEN XY2. 表示微操作和它们发生的条件: 条件:微操作 当所有冒号左边的条件满足时,执行微操作 (可以是多个规定的数据
3、传送。3. 上面的传送可以写为:XY4.4.具有控制信号的数据传送具有控制信号的数据传送:XYXY的实现的实现 (a) (a) 用直接通路用直接通路 (b) (b) 用总线用总线X三、提高系统性能的一种方法 同时执行两个或多个微操作。1. 如果某系统在= 1时执行XY和YZ的传 送,则这种情况可以表示成: XY,YZ (: YZ,XY)2 2同时拷贝相同的数据到多个目的地。同时拷贝相同的数据到多个目的地。 考虑考虑 : XYXY,ZYZY 3数字系统不能同时往同一寄存器中写入两个不同的值。 例如: 表示 : XY,XZ 无效 四、传送常量的有效条件和微操作: X0: X1 实现这两个传送的三种
4、不同方法: 通 过 两 个 传 送 通 路 装 载 数 据 来 设 置 X 的 值 ( 用 一 个 多 路 选 择 器 来 选 择 输 入 的 数 据 ) 装载数据与第一个完全相同,但它的数据直接由 信号产生。(用作为数据输入) 为简化硬件可使用寄存器的清除输入功能 (用CLR信号)问题:当问题:当和和同时为同时为1 1时,怎么办?时,怎么办?两种解决方法:两种解决方法: 产生产生和和的硬件能保证它们决不会被同时置为的硬件能保证它们决不会被同时置为1 1 修改条件使它们互斥修改条件使它们互斥 : X0 : X0 : : X0 : X0 : X0X0 : X1 : X1 : : X1 : X1
5、: X1X1五.寄存器之间的多位数据传送1. 同样大小寄存器对应位之间传送数据 例如: 当1时,从4位寄存器Y传送数据到4 位寄存器X。 用符号表示: : XY (a) 用直接连接 (b) 用总线2. 2. 访问一个寄存器的某一位或位组。访问一个寄存器的某一位或位组。 表示每一位:如表示每一位:如X3X3或或Y2Y2。3. 3. 表示位组用一个域表示)表示位组用一个域表示) 如:如:X3X3、X2X2和和X1X1可以写成:可以写成:X(3-1)X(3-1)或或X(3:1)X(3:1) : X(3-1)Y(2-0) : X(3-1)Y(2-0) : X3X2 : X3X2 : X(3-0)X(2
6、-0),X3 : X(3-0)X(2-0),X3 (X(2-0,3)X(2-0,3)或或X3X2X3X2,X2X1X2X1,X1X0X1X0,X0X3X0X3)六、执行算术运算、逻辑运算和移位运算的微操作1一些常用的算术运算和逻辑运算的微操作 操操 作作 示示 例例 Add Add XX + Y XX + Y Subtract Subtract XX Y XX Y 或或 XX + Y + 1XX + Y + 1 Increment Increment XX + 1 XX + 1 Decrement Decrement XX 1 XX 1 And And XX Y XX Y 或或 XXYXXY
7、OR OR XX Y XX Y XOR XOR XX Y XX Y NOT NOT X/X X/X 或或 XXXX2 2移位微操作移位微操作 线性移位:每一位的值依次向左或右移位。线性移位:每一位的值依次向左或右移位。 最后最后1 1位被丢弃,空位补入位被丢弃,空位补入0 0值。值。 例如:例如: X X10111011 左移一位:左移一位:01100110 右移一位:右移一位:01010101 循环移位:将在线性移位中被丢弃的位循环回来循环移位:将在线性移位中被丢弃的位循环回来 替代补入的替代补入的0 0值。值。 例如:例如: X X10111011 循环左移:循环左移:01110111 循
8、环右移:循环右移:11011101 算术移位:用于带符号数的移位。算术左移:各位按位左移,最高位向左移出,最低位 产生的空位填“0”。算术右移:连同符号位一起向右移一位,符号位保持不变。 例如: X1011 算术左移:0110 算术右移:1101 十进制移位:专门用于BCD表示。十进制移位与线性 移位很相似,但它移动1个数字或4位, 而不是移动1位。 例如:X1001 0111 十进制左移:0111 0000 十进制右移:0000 1001 操操 作作 示示 例例 线性左移线性左移 shl(X) shl(X) 线性右移线性右移 shr(X) shr(X) 循环左移循环左移 cil(X) cil
9、(X) 循环右移循环右移 cir(X) cir(X) 算术左移算术左移 ashl(X) ashl(X) 算术右移算术右移 ashr(X) ashr(X) 十进制左移十进制左移 dshl(X) dshl(X) 十进制右移十进制右移 dshr(X) dshr(X) 移位操作和它们的表示法 例如:Xshl(X)和shl(X)是等价的。 Yshl(X) 两个寄存器均需指定 七、寄存器与存储器之间的数据传送 例如: M55AC和ACM55 寄存器AC与存储器中55号单元之间的数据传送更好的方法:把地址存入寄存器中,然后由寄存器提供 存储器的访问地址。 (地址寄存器,标示为AR) AR55 MARAC或者
10、ACMAR( MAC和ACM)5.2.1 数字元件表示 一、第一个例子( D触发器) 1. 用RTL描述 LD:QDD D触发器:触发器:(a)(a)无清无清0 0输入端输入端 (b)(b)有清有清0 0输入端输入端52 用RTL表示数字系统2. 2. 有一同步清有一同步清0 0输入端的输入端的D D触发器触发器 LDLD: QDQD CLR CLR: Q0Q0 当当D D、LDLD和和CLRCLR都等于都等于1 1时,系统会失败。时,系统会失败。 解决方法:改变条件使得两者互斥。解决方法:改变条件使得两者互斥。 CLRLDCLRLD: QD LDQD LD: QDQD CLR CLR: Q0
11、 LDCLRQ0 LDCLR: Q0 Q0 二、第二个例子一个没有CLR输入端的JK触发器) 用RTL描述: JK: Q0 JK: Q1 JK : QQ三、最后一个例子一个n位的移位寄存器) Qn-1是最高位,Q0是最低位; 当SHL信号为高时,它将其中的数据左移一位; 输入Sin移进最低位。 移位寄存器: SHL: QQ(n-2:0),Sin5.2.2 简单系统的表示与实现 例如: 一个有4个1位触发器的系统 用RTL代码表示传送 (假设条件j,o,h和n是互斥的) j: MA o: AY h: RM n: YR , MR 几种不同的方法实现 1用直接连接实现系统的数据通路 (1) 用直接连
12、接实现的该RTL代码的系统的数据通路 (2) (2) 用直接连接实现该用直接连接实现该RTLRTL代码的系统的完整设计代码的系统的完整设计 在合适的时间激励触发器的在合适的时间激励触发器的LDLD信号来装载数信号来装载数 据,从而完成传送。据,从而完成传送。 当当j=1j=1MAMA或或n=1(MR) n=1(MR) 时,触发器时,触发器M M 装载数据。装载数据。 在满足单个条件在满足单个条件o o、h h和和n n时,触发器时,触发器A A、R R和和Y Y 装载数据。装载数据。 j: MA o: AY h: RM n: YR ,MR2用总线和三态门实现 j: MAo: AYh: RMn:
13、 YR ,MR 3. 用总线和多路选择器 实现 j: MAo: AYh: RMn: YR ,MR5.3.1 模6计数器目的: 设计一个模6计数器步骤: 用RTL表示计数器的功能 用数字逻辑实现RTL的代码模6计数器: 000001010011100101000 (0123450)53 更复杂数字系统和RTL假设:假设: 输入端输入端U U:控制计数:控制计数 当当U U1 1时,计数器在时钟的上升沿增加它的值。时,计数器在时钟的上升沿增加它的值。 当当U U0 0时,不管时钟的值如何,它都保持当前时,不管时钟的值如何,它都保持当前 值不变。值不变。 输出输出V2V1V0V2V1V0:计数器的值
14、:计数器的值 进位输出:进位输出:C C 状态:状态:S0S1S2S3S4S5S0S0S1S2S3S4S5S0 (两个另外状态(两个另外状态S6S6和和S7S7)模6计数器的状态表和状态图 当前状态当前状态U U下一状态下一状态C CV2V1V0V2V1V0 S0 S0 0 0 S0 S0 1 1 000 000 S0 S0 1 1 S1 S1 0 0 001 001 S1 S1 0 0 S1 S1 0 0 001 001 S1 S1 1 1 S2 S2 0 0 010 010 S2 S2 0 0 S2 S2 0 0 010 010 S2 S2 1 1 S3 S3 0 0 011 011 S3
15、 S3 0 0 S3 S3 0 0 011 011 S3 S3 1 1 S4 S4 0 0 100 100 S4 S4 0 0 S4 S4 0 0 100 100 S4 S4 1 1 S5 S5 0 0 101 101 S5 S5 0 0 S5 S5 0 0 101 101 S5 S5 1 1 S0 S0 1 1 000 000 S6 S6 X X S0 S0 1 1 111 111 S7 S7 X X S0 S0 1 1 111 111110一、用RTL表示系统 (S0+S1+S2+S3+S4U: VV+1 , C0 S 5 U : V0 ,C1 S6 + S7 : V0 , C1 在条件S
16、0+S1+S2+S3+S4+S5U 下,计数器保持当前值与C值不变。 可以用两条RTL语句表示: (S5U和S6 + S7触发相同的微操作) (S0+S1+S2+S3+S4U: VV+1,C0 S5US6S7: V0,C1二、模6计数器RTL代码的两种实现 用一个寄存器(S0+S1+S2+S3+S4US5US6S7 用一个计数器简单)U(V 2 + V1 V0 )V 2 V1 + V 2 V0 U5.3.2 收费站控制器1. 两个外部传感器 C显示车辆是否在收费站中 当车在时,C1,否则C0。 显示硬币是否已经投到收费站的收集篮中以及 硬币的面值。 没有硬币投入没有硬币投入 I1I000 投入
17、五分硬币投入五分硬币 I1I001 投入一角硬币投入一角硬币 I1I010 投入投入25分硬币分硬币 I1I0112. 两个输出指示灯和一个警报灯 当一辆汽车驶入收费站时,红灯R亮, 直到司机投入35分硬币,此时红灯熄灭,绿灯 (G)亮,绿灯保持亮着直到汽车离开收费站; 当绿灯灭时,红灯又亮了。 如果没有付足够的通行费,汽车离开,红灯一直 保持亮着且警报A响。 警报维持到另一辆汽车驶入收费站;然后停止。一、控制器的状态表和状态图状态状态 条条 件件R G ASNOCAR车站中无车车站中无车 1 0 0S0站中有车,未付费站中有车,未付费 1 0 0S5站中有车,已付费站中有车,已付费5分分 1
18、 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 AS N OCAR1XXS010
19、0 S150XXSCHEAT101SPAID0XXSNOCAR100 S15101S20100SCHEAT1XXS0100 S15110S25100S00XXSCHEAT101 S15111SPAID010S0101S5100 S200XXSCHEAT101S0110S10100 S20101S25100S0111S25100 S20110S30100S50XXSCHEAT101 S20111SPAID010S5101S10100 S250XXSCHEAT101S5110S15100 S25101S30100S5111S30100 S25110S PA ID010S100XXS CHEAT10
20、1 S25111S PA ID010S10101S15100 S300XXS CH EAT101S10110S20100 S30101S PA ID010S10111S PA ID010 S30110S PA ID010 S30111S PA ID010 状 态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
21、 1 0 0收费站控制器状态赋值收费站控制器状态赋值 二、将状态表转换成RTL语句1. 当控制器状态为SNOCAR且C1,它转换到状态S0, 此状态值为0001。 (假设状态值存于4位寄存器T中) SNOCAR C: T0001 如果我们想在每次传送后设置输出值,此状 态不得不包含微操作R1,G0和A0。2. 状态SPAID和SCHEAT各仅有一个转移情况。 SPAIDC: T0000 SCHEATC : T00013. 3. 状态状态S0S0在状态表中有四种可能的转移情况。在状态表中有四种可能的转移情况。 S0C : T1001S0C : T1001 S0CI1I0 : T0010 S0CI
22、1I0 : T0010 S0CI1I0 : T0011 S0CI1I0 : T0011 S0CI1I0 : T0110 S0CI1I0 : T01104. 4. 对于其他状态,可以用同样的方法得到其对于其他状态,可以用同样的方法得到其RTLRTL代码。代码。 5. 5. 最终的入口是所有的无用状态均无条件转移到状态最终的入口是所有的无用状态均无条件转移到状态 00000000。 6. 6. 整个控制器除输出之外的代码整个控制器除输出之外的代码 SNOCARC:T0001 S15CI1I0:T0101SPAIDC:T0000 S15CI1I0:T0110SCHEATC:T0001 S15CI1I
23、0:T1000S0C:T1001 S20C:T1001S0CI1I0:T0010 S20CI1I0:T0110S0CI1I0:T0011 S20CI1I0:T0111S10CI1I0:T1000 S30CI1I0:T1000S15C:T1001 T3(T2+T1):0000S0CI1I0:T0110S20CI1I0:T1000S5C:T1001 S25C:T1001S5CI1I0:T0011 S25CI1I0:T0111S5CI1I0:T0100 S25CI1I0:T1000S5CI1I0:0111S25CI1I0:T1000S10C:T1001 S30C:T1001S10CI1I0:T0100S30CI1I0:T1000S10CI1I0:T0101S30CI1I0:T1000三、扩展
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车制造行业年终述职
- 蔬菜批发市场购销合同范本
- 工程承包-蓄水池合同样本
- 家庭承包土地合同书
- 2025年新疆乌鲁木齐市多校联考中考数学一模试卷
- 度铸件采购框架合同
- 数控铣削加工技术电子教案 模块五 1+X技能考核 任务一1+X技能考核数控铣初级试题
- 家居装修工程合同报价清单
- 养护合同:绿植花卉租赁项目
- 秋季出行安全知识
- GB/T 20145-2006灯和灯系统的光生物安全性
- GB 21519-2008储水式电热水器能效限定值及能效等级
- 2023年陕西省学业水平考试物理试真题答案无
- 运输供应商年度评价表
- 旅游项目融投资概述
- 全旅馆业前台从业人员资格证考试答案解析
- 十二经络及腧穴课件
- 立式圆筒形储罐罐底真空试验记录
- 公司新员工入职登记表(模板)
- 新疆大地构造单元划分论文(董连慧)2017最新整理
- 办公室工作存在问题(总结12篇)
评论
0/150
提交评论