湖南大学计算机系统组成与体系结构第五章寄存器传送语言_第1页
湖南大学计算机系统组成与体系结构第五章寄存器传送语言_第2页
湖南大学计算机系统组成与体系结构第五章寄存器传送语言_第3页
湖南大学计算机系统组成与体系结构第五章寄存器传送语言_第4页
湖南大学计算机系统组成与体系结构第五章寄存器传送语言_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1 5.1 微操作和寄存器传送语言微操作和寄存器传送语言5.2 5.2 用用RTLRTL表示数字系统表示数字系统5.3 5.3 复杂数字系统和复杂数字系统和RTLRTL5.4 5.4 实例:实例:VHDLVHDLVHSICVHSIC硬件描述语言硬件描述语言5.5 5.5 小结小结第五章第五章 寄存器传送语言寄存器传送语言微操作:微操作:大部分时序数字系统的基础。大部分时序数字系统的基础。 是更简单的行为。是更简单的行为。 数据从一个寄存器、存储器单元或者数据从一个寄存器、存储器单元或者I/OI/O设备设备 到另一个的传送到另一个的传送 修改存储的值修改存储的值 执行算术或逻辑功能执行算术或

2、逻辑功能 修改已存储的值修改已存储的值确定时序数字系统:确定时序数字系统:确定正确的微操作传送及其条件。确定正确的微操作传送及其条件。 (这些条件保证微操作按正确的顺序执行)(这些条件保证微操作按正确的顺序执行)设计时序数字系统:设计时序数字系统: 首先用微操作表述系统的行为首先用微操作表述系统的行为 设计硬件来匹配这些表述设计硬件来匹配这些表述硬件描述语言硬件描述语言(hardware description language,HDL) (说明与系统需求对应的微操作的条件和传送)(说明与系统需求对应的微操作的条件和传送) 电路分析和设计电路分析和设计(circuit analysis and

3、 design,CAD)软件软件 (可以在用户规定的各种条件下仿真电路的行为)(可以在用户规定的各种条件下仿真电路的行为) 设计时序数字系统:设计时序数字系统:51 微操作和寄存器传送语言 首先用微操作表述系统的行为首先用微操作表述系统的行为 设计硬件来匹配这些表述设计硬件来匹配这些表述一、微操作的格式一、微操作的格式 考虑有两个考虑有两个1 1位位寄存器寄存器X X和和Y Y的一个数字系统。的一个数字系统。 拷贝寄存器拷贝寄存器Y Y的内容到寄存器的内容到寄存器X X中的微操作:中的微操作:XYXY ( (有时也可以表示为有时也可以表示为YXYX) )两种实现:两种实现: 由直接连接实现由直

4、接连接实现 通过总线连接实现通过总线连接实现X二、传送发生的条件二、传送发生的条件1.1. 假定传送应发生在输入控制假定传送应发生在输入控制为高时,为高时, 则传送过程可以写为则传送过程可以写为 IF THEN XYIF THEN XY2.2. 表示微操作和它们发生的条件:表示微操作和它们发生的条件: 条件:微操作条件:微操作 当所有冒号左边的条件满足时,执行微操作当所有冒号左边的条件满足时,执行微操作(可以是多个)规定的数据传送。(可以是多个)规定的数据传送。 3.3. 上面的传送可以写为上面的传送可以写为:XYXY4.4.具有控制信号的数据传送具有控制信号的数据传送:XYXY的实现的实现(

5、a) (a) 用直接通路用直接通路 (b) (b) 用总线用总线X三、提高系统性能的一种方法三、提高系统性能的一种方法 同时执行两个或多个微操作。同时执行两个或多个微操作。1.1.如果某系统在如果某系统在= 1= 1时执行时执行XYXY和和YZYZ的传的传 送,则这种情况可以表示成送,则这种情况可以表示成: XY: XY,YZYZ 或者或者: YZ: YZ,XYXY 数据传送数据传送: XY,YZ: XY,YZ的实现的实现 2 2同时拷贝相同的数据到多个目的地。同时拷贝相同的数据到多个目的地。考虑考虑 : XYXY,ZYZY实现数据传送实现数据传送: XY: XY,ZYZY 3 3数字系统不能

6、同时往同一寄存器中写入两个不同的值。数字系统不能同时往同一寄存器中写入两个不同的值。 例如例如: 表示表示 : XY: XY,XZXZ 无效无效 四、传送常量的有效条件和微操作四、传送常量的有效条件和微操作: X0: X0: X1: X1 实现这两个传送的三种不同方法:实现这两个传送的三种不同方法: 通过两个传送通路装载数据来设置通过两个传送通路装载数据来设置X X的值。的值。 装载数据与第一个完全相同,但它的数据直接由装载数据与第一个完全相同,但它的数据直接由 信号信号产生。产生。 为简化硬件可使用寄存器的清除输入功能。为简化硬件可使用寄存器的清除输入功能。 数据传送数据传送: X0: X0

7、与与: X1: X1的三种实现:的三种实现: (a) (a) 用一个多路选择器来选择输入的数据用一个多路选择器来选择输入的数据 (b) (b) 用用作为数据输入作为数据输入 (c) (c) 用用CLRCLR信号信号两种解决方法:两种解决方法: 产生产生和和的硬件能保证它们决不会被同时置为的硬件能保证它们决不会被同时置为1 1 修改条件使它们修改条件使它们互斥互斥 : X0 : X0 : X0: X0 : X0 : X0 : X1 : X1 : X1 : X1 : X1 : X1五五. .寄存器之间的多位数据传送寄存器之间的多位数据传送 1.1. 同样大小寄存器对应位之间传送数据同样大小寄存器对

8、应位之间传送数据 例如例如: : 当当1 1时,从时,从4 4位寄存器位寄存器Y Y传送数据到传送数据到4 4位寄存器位寄存器X X 用符号表示用符号表示 : XYXY问题:问题:当当和和同时为同时为1时,怎么办?时,怎么办?4 4比特比特数据传送数据传送:XYXY的实现:的实现: (a) (a) 用直接连接用直接连接 (b) (b) 用总线用总线 2.2.访问一个寄存器的某一位或位组。访问一个寄存器的某一位或位组。 表示每一位:如表示每一位:如X X3 3或或Y Y2 2。3.3.表示位组(表示位组(用一个域表示用一个域表示) 如如X X3 3、X X2 2和和X X1 1可以写成可以写成X

9、(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 3XX2 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 3XX2 2,X X2 2XX1 1,X X1 1XX0 0,X X0 0XX3 3 )六、执行数据的算术运算、逻辑运算和移位运算的微操作六、执行数据的算术运算、逻辑运算和移位运算的微操作 1 1一些常用的算术运算和逻辑运算的微操作一些常用的算术运算和逻辑运算的微操作 操操 作作 示示 例例 Add XX + Y Subtract

10、 XX Y 或 XX + Y + 1 Increment XX + 1 Decrement XX1 And XX Y 或 XXY OR XX Y XOR XX Y NOT X/X 或 XX2 2移位微操作移位微操作 线性移位线性移位:每一位的值依次向左(或右)移位。:每一位的值依次向左(或右)移位。 最后最后1 1位被丢弃,空位补入位被丢弃,空位补入0 0值。值。 例如:例如: X X10111011 左移一位:左移一位:01100110 右移一位:右移一位:01010101 循环移位循环移位:将在线性移位中被丢弃的位循环回来:将在线性移位中被丢弃的位循环回来 替代补入的替代补入的0 0值。值

11、。 例如例如: X X10111011 循环左移:循环左移:01110111 循环右移:循环右移:11011101 算术移位算术移位:用于带符号数的移位。:用于带符号数的移位。 运算规则:运算规则:符号位在移位操作中保持不变,工作原理符号位在移位操作中保持不变,工作原理 与线性移位相似。与线性移位相似。 例如例如: X X10111011 算术左移:算术左移:11101110 算术右移:算术右移:11011101 十进制移位十进制移位:专门用于:专门用于BCDBCD表示。十进制移位与线性表示。十进制移位与线性 移位很相似,但它移动移位很相似,但它移动1 1个数字或个数字或4 4位,位, 而不是

12、移动而不是移动1 1位。位。 例如例如:X X1001 01111001 0111 十进制左移:十进制左移:0111 00000111 0000 十进制右移:十进制右移:0000 10010000 1001 操操 作作 示示 例例 线性左移 shl(X) 线性右移 shr(X) 循环左移 cil(X) 循环右移 cir(X) 算术左移 ashl(X) 算术右移 ashr(X) 十进制左移 dshl(X) 十进制右移 dshr(X) 移位操作和它们的表示法移位操作和它们的表示法 例如例如:Xshl(X)Xshl(X)和和shl(X)shl(X)是等价的。是等价的。 Yshl(X)Yshl(X)

13、两个寄存器均需指定两个寄存器均需指定 七、寄存器与存储器之间的数据传送七、寄存器与存储器之间的数据传送 例如例如: M55ACM55AC和和ACM55ACM55 寄存器寄存器ACAC与存储器中与存储器中5555号单元之间的数据传送号单元之间的数据传送更好的方法:更好的方法:把地址存入寄存器中,然后由寄存器提供把地址存入寄存器中,然后由寄存器提供 存储器的访问地址。存储器的访问地址。 (地址寄存器,标示为(地址寄存器,标示为ARAR) AR55AR55 MARAC MARAC或者或者ACMARACMAR( MACMAC和和ACMACM)5.2.1 数字元件表示 一、一、D触发器触发器 1. 用用

14、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 LDCLRQ0 LDCLR: Q0 Q0 二二、 JK触发器触发器(没有(没有CLRC

15、LR输入端)输入端) 用用RTLRTL描述:描述: JKJK: Q0Q0 JK JK: Q1Q1 JK JK : QQQQ三、三、n n位的移位寄存器位的移位寄存器 Q Qn-1n-1是最高位,是最高位,Q Q0 0是最低位。是最低位。 当当SHLSHL信号为高时,它将其中的数据左移一位。信号为高时,它将其中的数据左移一位。 输入输入S Sinin移进最低位。移进最低位。 移位寄存器:移位寄存器: SHLSHL: QQ(n-2:0),SQQ(n-2:0),Sinin4位左移寄存器5.2.2 简单系统的表示与实现 例如:例如: 有有4个个1位触发器的系统位触发器的系统 用用RTL代码表示传送代码

16、表示传送 (假设条件(假设条件j,o,h和和n是是互斥互斥的)的) j: MA o: AY h: RM n: YR , MR 几种不同的方法实现几种不同的方法实现 1用直接连接实现系统的数据通路用直接连接实现系统的数据通路 用直接连接实现的该用直接连接实现的该RTL代码的系统的数据通路代码的系统的数据通路 用直接连接实现该用直接连接实现该RTL代码的系统的完整设计代码的系统的完整设计 在合适的时间激励触发器的在合适的时间激励触发器的LD信号来装载数信号来装载数 据,从而完成传送。据,从而完成传送。 当当j=1(MA)或或n=1(MR) 时,触发器时,触发器M 装载数据。装载数据。 在满足单个条

17、件在满足单个条件o、h和和n时,触发器时,触发器A、R和和Y 装载数据。装载数据。 j: MA o: AY h: RM n: YR , MR2用总线和三态门实现用总线和三态门实现 j: MAo: AYh: RMn: YR ,MR 3. 用总线和多路选择器实现用总线和多路选择器实现 j: MAo: AYh: RMn: YR ,MR531 模6计数器 目的目的: 设计一个设计一个模模6计数器计数器 步骤:步骤: 模模6计数器计数器 : 000001010011100101000 (0123450)53 更复杂数字系统和RTL 用用RTL表示计数器的功能表示计数器的功能 用数字逻辑实现用数字逻辑实现

18、RTL的代码的代码假设:假设: 输入端输入端U:控制计数:控制计数 当当U1时,计数器在时钟的上升沿增加它的值。时,计数器在时钟的上升沿增加它的值。 当当U0时,不管时钟的值如何,它都保持当前值不变。时,不管时钟的值如何,它都保持当前值不变。 输出输出V2V1V0:计数器的值:计数器的值 进位输出:进位输出:C 状态:状态:S0S1S2S3S4S5S0 (两个另外状态(两个另外状态S6和和S7)模模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

19、 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

20、 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 111一、用一、用RTL表示系统表示系统 (S0+S1+S2+S3+S4)U: VV+1 , C0 S5U : V0 ,C1 S6 + S7 : V0 , C1 在条件在条件(S0+S1+S2+S3+S4+S5)U 下,计数器保持当下,计数器保持当前值与前值与C值不变。值不变。 可以用两条可以用两条RTL语句表示:(语句表示:(S5U和和S6 + S7触发相同触发相同的微操作)的微操作) (S0+S1+S2+S3+S4)U: VV+

21、1,C0 S5US6S7: V0,C1二、模二、模6计数器计数器RTL代码的两种实现代码的两种实现 用一个寄存器用一个寄存器(S0+S1+S2+S3+S4)US5US6S7 用一个计数器(简单)用一个计数器(简单)U(V 2 + V1 V0 )V 2 V1 + V 2 V0 U532 收费站控制器 两个外部传感器两个外部传感器 C显示车辆是否在收费站中显示车辆是否在收费站中 当车在时,当车在时,C1,否则,否则C0。 显示硬币是否已经投到收费站的收集篮中以及显示硬币是否已经投到收费站的收集篮中以及 硬币的面值。硬币的面值。 没有硬币投入没有硬币投入 I1I000 投入五分硬币投入五分硬币 I1

22、I001 投入一角硬币投入一角硬币 I1I010 投入投入25分硬币分硬币 I1I011 两个输出指示灯和一个警报灯两个输出指示灯和一个警报灯 当一辆汽车驶入收费站时,当一辆汽车驶入收费站时,红灯红灯(R)亮,亮, 直到司机投入直到司机投入35分硬币,此时分硬币,此时红灯红灯熄灭,熄灭,绿灯绿灯(G)亮,亮, 绿灯绿灯保持亮着直到汽车离开收费站;保持亮着直到汽车离开收费站; 当当绿灯绿灯灭时,灭时,红灯红灯又亮了。又亮了。 如果没有付足够的通行费,汽车离开,如果没有付足够的通行费,汽车离开,红灯红灯一直保一直保 持亮着且警报持亮着且警报(A)响。响。 警报维持到另一辆汽车驶入收费站;然后停止。

23、警报维持到另一辆汽车驶入收费站;然后停止。一、控制器的状态表和状态图一、控制器的状态表和状态图状态状态 条条 件件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站中有车,已付足过路费站中有车

24、,已付足过路费 0 1 0SCHEAT未付足过路费就离开车站未付足过路费就离开车站 1 0 1当 前当 前 状状 态态 C I1I0下 一下 一状态状态 R G A 当 前当 前状态状态 C I1I0下 一下 一状态状态 R G ASNOCAR1XXS0100 S150XXSCHEAT101SPAID0XXSNOCAR100 S15101S20100SCHEAT1XXS0100 S15110S25100S00XXSCHEAT101 S15111SPAID010S0101S5100 S200XXSCHEAT101S0110S10100 S20101S25100S0111S25100 S20110

25、S30100S50XXSCHEAT101 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

26、 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. 当控制器状态为当控制器状态为SNOCAR且且C1,它转换到状态,它转换到状态S0, 此状态值为此状态值为0001。 (假设状态值存于(假设状态值存于4位寄存器位寄存器T中)中) SNOCAR C: T0001 如果我们想在每次传送后设置输出值,此状如果我们

27、想在每次传送后设置输出值,此状 态不得不包含微操作态不得不包含微操作R1,G0和和A0。 2. 状态状态SPAID和和SCHEAT各仅有一个转移情况。各仅有一个转移情况。 SPAIDC: T0000 SCHEATC : T00013. 状态状态S0在状态表中有四种可能的转移情况。在状态表中有四种可能的转移情况。 S0C : T1001 S0CI1I0 : T0010 S0CI1I0 : T0011 S0CI1I0 : T01104. 对于其他状态,可以用同样的方法得到其对于其他状态,可以用同样的方法得到其RTL代码。代码。 5. 最终的入口是所有的无用状态均无条件转移到状态最终的入口是所有的无

28、用状态均无条件转移到状态 0000。 6. 整个控制器除输出之外的代码整个控制器除输出之外的代码SNOCARC:T0001 S15CI1I0:T0101SPAIDC:T0000 S15CI1I0:T0110SCHEATC:T0001 S15CI1I0:T1000S0C:T1001 S20C:T1001S0CI1I0:T0010 S20CI1I0:T0110S0CI1I0:T0011 S20CI1I0:T0111S10CI1I0:T1000 S30CI1I0:T1000S15C:T1001 T3(T2+T1):T0000S0CI1I0:T0110S20CI1I0:T1000S5C:T1001 S

29、25C:T1001S5CI1I0:T0011 S25CI1I0:T0111S5CI1I0:T0100 S25CI1I0:T1000S5CI1I0:0111S25CI1I0:T1000S10C:T1001 S30C:T1001S10CI1I0:T0100S30CI1I0:T1000S10CI1I0:T0101S30CI1I0:T1000三、扩展三、扩展RTL代码产生输出代码产生输出 SPAIDC:R1,G0 SCHEATC:R1,G0,A0 SNOCARC:R1,G0,A0 S0C:A1 S5C:A1 S10C:A1 S10CI1I0:R0,G1 S15C:A1 S15CI1I0:R0,G1当进

30、入当进入SPAID状态,状态, 输出输出R : 10;当离开当离开SPAID状态时,状态时,输出输出R:0 1。输出输出G正好相反,当正好相反,当进入进入SPAID状态时变成状态时变成1,离开时变成,离开时变成0。最后,无论何时进入最后,无论何时进入SCHEAT状态,输出状态,输出A变成变成1,离开,离开SCHEAT状状态时变成态时变成0。 S20C:A1 S20CI1I0:R0,G1 S25C:A1S25CI1I0:R0,G1 S25CI1I0:R0,G1 S30C:A1S30CI1I0:R0,G1S30CI1I0:R0,G1 S30CI1I0:R0,G1T3(T2+T1):R1,G0,A0

31、四、收费站控制器的完整四、收费站控制器的完整RTL代码代码 (S0+S5+S10+S15+S20+S25+S30)C:T1001 SPAIDC:T0000 (SNOCAR+SCHEAT)C:T0001 S0CI1I0:T0010 S0CI1IO:T0011 S0CI1I0:T0110 S5CI1I0:T0011 S5CI1IO:T0100 S5CI1I0:T0111 S10CI1I0:T0100 S10CI1IO:T0101 S10CI1I0:T1000 S15CI1I0:T0101 S15CI1IO:T0110 S15CI1I0:T1000 S20CI1I0:T0110 S20CI1IO:T

32、0111 S20CI1I0:T1000 S25CI1I0:T0111 S25CI1:T1000 S30C(I1+I0):T100 T3(T2+T1):T0000 SPAIDC:R1,G0 (SNOCAR+SCHEAT)C:R1,G0,A0 (S0+S5+S10+S15+S20+S25+S30)C:A1 (S10+S15+S20+S25+S30)CI1I0:R0,G1 (S25+S30)CI1I0:R0,G1 S30CI1I0:R0,G1 T3(T2+T1):R1,G0,A0541 VHDL语法 超高速集成电路硬件描述语言超高速集成电路硬件描述语言 (VHSIC hardware descrip

33、tion language,VHDL) 用途:用途:5.4 实例:VHDLVHSIC硬件描述语言 设计通用集成电路(设计通用集成电路(IC) 设计专用集成电路设计专用集成电路 (application-specific IC,ASIC) 调整设计以适合现有的可编程逻辑电路调整设计以适合现有的可编程逻辑电路 (programmable logic device,PLD)优点:优点: 可移植性可移植性 设备独立设备独立 允许设计者在程序下载到硬件上之前检验设计允许设计者在程序下载到硬件上之前检验设计 的性能的性能 提供了很好的系统设计的文档支持提供了很好的系统设计的文档支持 允许设计者在不同的层次

34、表示系统允许设计者在不同的层次表示系统 源代码很长且难于调试源代码很长且难于调试 对同一系统,不同的工具会产生不同的、但均有对同一系统,不同的工具会产生不同的、但均有 效的设计结果。效的设计结果。 缺点:缺点:VHDL代码主要有三部分:代码主要有三部分:1库说明库说明(library declaration) 由说明需访问的库和库中要用到模块的语句构成。由说明需访问的库和库中要用到模块的语句构成。 最常用到的库:最常用到的库:IEEE库库 最常用的模块:最常用的模块:std_logic_1164模块模块 (描述了设计者需用的输入、输出的说明)(描述了设计者需用的输入、输出的说明) 库、模块说明

35、可写成如下代码:库、模块说明可写成如下代码: library IEEE; use IEEE.std_logic_1164.all;所有用到的库与模块都列在所有用到的库与模块都列在VHDL设计文件中。设计文件中。 2实体部分(实体部分(entity section) 在实体部分,设计者指定在实体部分,设计者指定实体的名称实体的名称和它的和它的输输 入、输出入、输出。 实体部分的基本格式如下:实体部分的基本格式如下:entity module_name is port( input1,input2,inputp: in std_logic; output1,output2,outputo: out

36、 std_logic; inout1,inout2,.inoutn: inout std_logic; buffer1,buffer2,bufferm: buffer std_logic;invec1,invec2,invecl: in std_logic_vector(range); outvec1,outvec2,.outveck: out std_logic_vector(range); iovec1,iovec2,iovecj: inout std_logic_vector(range);bufvec1,bufvec2,bufveci:buffer std_logic_vector(r

37、ange););end module_name; in std_logic类型:表明设计的输入。类型:表明设计的输入。out std_logic类型:类型: 定义设计的输出信号。定义设计的输出信号。inout std_logic类型:类型: 定义双向信号,它既可以输入也定义双向信号,它既可以输入也 可以输出数据。可以输出数据。buffer std_logic类型:定义设计中的内部信号。类型:定义设计中的内部信号。范围范围(range):(每个范围可用独立的语句定义):(每个范围可用独立的语句定义) invector1: in std_logic_vector(3 downto 0); inve

38、ctor2: in std_logic_vector(4 downto 2); invector3: in std_logic_vector(1 to 8);3. 结构体部分结构体部分(architecture section) 指定系统的行为以及内部逻辑。指定系统的行为以及内部逻辑。 基本形式如下:基本形式如下: architecture arch_name of module_name is (指定结构体名称及它所属的实体)(指定结构体名称及它所属的实体) type and additional signal declarations; (指定新的类型(指定新的类型(type)和结构体中的

39、新信号)和结构体中的新信号) begin process1:process(signal list) begin statements defining behavior/logic; end process process1; . . . processn:process(signal list) begin statement defining behavior/logic; end process processn; end arch_name;5.4.2 高层抽象的VHDL设计 在不同抽象层次设计时序系统。在不同抽象层次设计时序系统。 高层抽象:描述系统的有限状态机。高层抽象:描述系统

40、的有限状态机。 低层抽象:数字逻辑设计。低层抽象:数字逻辑设计。1模模6计数器计数器的库说明与实体部分的库说明与实体部分 两个输入端两个输入端: U端和系统时钟端端和系统时钟端clk 1位输出位输出C 3位输出位输出V (定义(定义V为一个为一个3位向量,下标为位向量,下标为2,1,和,和0。)。)该设计的库说明与实体部分如下:该设计的库说明与实体部分如下:library IEEE; use IEEE.std_logic_1164.all; entity mod6 is port( U,clk:in std_logic; C:out std_logic; V:out std_logic_vec

41、tor(2 downto 0) ); end mod6;2. 扩展扩展模模6计数器计数器的结构体部分的结构体部分 结构体描述了一个新的枚举类型结构体描述了一个新的枚举类型: 状态状态(state) 这种类型有这种类型有8个可能值个可能值S0到到S7,对应于计数器,对应于计数器 的的6个有个有 效状态和两个无效状态。效状态和两个无效状态。 申明了两个这种类型的信号申明了两个这种类型的信号 present_state:指示:指示模模6计数器计数器的当前状态是的当前状态是S0到到S7 中的哪一个;中的哪一个; next_state:指示计数器的下一状态。:指示计数器的下一状态。 用下列用下列VHDL代码实现代码实现 architecture amod6 of mod6 is type states is (s0,s1,s2,s3,s4,s5,s6,s7); signal present_state,next_state:states; 两个进程两个进程 第一个着眼于计数器的当前状态和它的输入值,第一个着眼于计数器的当前状态和它的输入值, 并产生期望的输出和下一状态值。并产生期望的输出和下一状态值。 第二个进程执行从当前状态到下一状态的转移。第二个进程执行从当前状态到下一状态的转移。 过程过程state_mod6的的VHDL代码代码 state_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论