8.VHDL语言基础(六)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、三态总线设计
8位4通道三态总线驱动器设计一
17
双向和三态电路信号赋值
3、三态总线设计
8位4通道三态总线驱动器设计一
18
双向和三态电路信号赋值
3、三态总线设计
8位4通道三态总线驱动器设计一
19
双向和三态电路信号赋值
3、三态总线设计
8位4通道三态总线驱动器设计二
20
双向和三态电路信号赋值
3、三态总线设计
双向和三态电路信号赋值
2、双向端口设计 用INOUT模式设计双向端口也必须考虑三 态的使用,因为双向端口的设计与三态端口的 设计十分相似,都必须考虑端口的三态控制。 这是由于双向端口在完成输入功能时,必须使 原来呈输出模式的端口呈高阻态,否则,待输 入的外部数据势必会与端口处原有电平发生 “线与”,导致无法将外部数据正确地读入, 从而实现“双向”的功能。
VHDL语言基础 (六)
双向和三态电路设计
1
双向和三态电路信号赋值
1、三态门设计
三态门,简称TSL(Three-state Logic)门,是在普 通门电路的基础上,附加使能控制端和控制电路构成 的。三态门除了通常的高电平和低电平两种输出状态 外,还有第三种输出状态-高阻态。处于高阻态时,电 路与负载之间相当于开路。
2
双向和三态电路信号赋值
1、三态门设计
3
双向和三态电路信号赋值
1、三态门设计 三态门用途之一是实现总线传输。总线 传输的方式有两种,单向总线和双向总线。 单向总线方式下,要求只有需要传输信息的 那个三态门的控制端处于使能状态,其余各 门皆处于禁止状态。
4
双向和三态电路信号赋值
三态门实现总线传输的原理:
15
双向和三态电路信号赋值
3、三态总线设计 为构成芯片内部的总线系统,必须设计 三态总线驱动器电路(注意,大部分FPGA 中 无法形成三态电路),这可以有多种表达方法, 但必须注意信号多驱动源的处理问题。下面 两个例程都试图描述一个 8位4通道的三态总 线驱动器,但其中一个程序是错误的。
16
双向和三态电路信号赋值
11
双向和三态电路信号赋值
2、双向端口设计
双向端口设计实例
12
双向和三态电路信号赋值
2、双向端口设计
双向端口设计实例
13
双向和三态电路信号赋值
14
双向和三态电路信号赋值
2、双向端口设计
分析:
q定义为双向端口,而x定义为三态控制输出口。 在q履行输入功能时,前者没有将其设定为高 阻态输出,即执行语句:q<=“ZZZZZZZZ”,从 而没有使q成为真正的双向端口,导致了错误 的逻辑电路; 执行语句:q<=“ZZZZZZZZ”,使q 在IF 语句 中有了完整的条件描述,从而克服了时序元件 的引入。
wenku.baidu.com
双向和三态电路信号赋值
1、三态门设计
6
双向和三态电路信号赋值
1、三态门设计
7
双向和三态电路信号赋值
8 位三态控制门电路
8
双向和三态电路信号赋值
1、三态门设计
9
双向和三态电路信号赋值
1、三态门设计
注 意:
由于'Z'在综合中是一个不确定的值,不同的综合 器可能会给出不同的结果,因而对于VHDL 综合前的 行为仿真与综合后功能仿真结果也可能是不同的,有 时虽然能通过综合,但却不能获得正确的时序仿真结 果,所以建议尽可能不要将'Z'用作比较值,或用作表 达式或操作数; 虽然对于关键词,VHDL 语法规定不区分大小写, 但当把表示高阻态的'Z'值赋给一个数据类型为 STD_LOGIC 的变量或信号时,'Z'必须是大写,这是 因为在IEEE 库中对数据类型STD_LOGIC 的预定义 已经将高阻态确定为大写'Z'。 10
24
双向和三态电路信号赋值
课堂练习:
修改8位4通道三态总线驱动器的第一 个设计,使其能综合出正确的电路。
25
一般门与其它电路的连接,无非是两种状态,1或者0。 在比较复杂的系统中,为了能在一条传输线上传送不同部件 的信号,通常采用了总线连接的方式,因为总线只允许同时 只有一个使用者,三态门作为一种扩展逻辑功能的输出级, 它的高阻态,也就是高阻抗,相当于该门和它连接的电路处 于断开的状态,相当于没有接在总线上,不影响其它器件的 工作(因为实际电路中你不可能去断开它,所以设置这样一个 状态使它处于断开状态)。 如果你的设备端口要挂在一个总线上, 必须通过三态缓冲 器。因为在一个总线上同时只能有一个端口作输出, 这时其他 端口必须在高阻态, 同时可以输入这个输出端口的数据。 所以 你还需要有总线控制管理,访问到哪个端口,那个端口的三 态缓冲器才可以转入输出状态。这是典型的三态门应用,如 5 果在线上没有两个以上的输出设备, 当然用不到三态门。
8位4通道三态总线驱动器设计二
21
双向和三态电路信号赋值
22
双向和三态电路信号赋值
...
23
双向和三态电路信号赋值
3、三态总线设计
分析:
设计一中除了input0外,其余3个8位输入端都悬空 没能用上,显然是因为恰好将input0安排作为进程中 output的最后一个激励信号的原因; 设计二中在结构体中使用了4个并列的WHENELSE并行语句,结构体中的每一条并行语句都等同 于一个独立运行的进程,它们独立监测各并行语句中 作为敏感信号的输入值ctl; 设计二表明,要设计出能产生独立控制的多通道的 电路结构,必须使用并行语句结构。
8位4通道三态总线驱动器设计一
17
双向和三态电路信号赋值
3、三态总线设计
8位4通道三态总线驱动器设计一
18
双向和三态电路信号赋值
3、三态总线设计
8位4通道三态总线驱动器设计一
19
双向和三态电路信号赋值
3、三态总线设计
8位4通道三态总线驱动器设计二
20
双向和三态电路信号赋值
3、三态总线设计
双向和三态电路信号赋值
2、双向端口设计 用INOUT模式设计双向端口也必须考虑三 态的使用,因为双向端口的设计与三态端口的 设计十分相似,都必须考虑端口的三态控制。 这是由于双向端口在完成输入功能时,必须使 原来呈输出模式的端口呈高阻态,否则,待输 入的外部数据势必会与端口处原有电平发生 “线与”,导致无法将外部数据正确地读入, 从而实现“双向”的功能。
VHDL语言基础 (六)
双向和三态电路设计
1
双向和三态电路信号赋值
1、三态门设计
三态门,简称TSL(Three-state Logic)门,是在普 通门电路的基础上,附加使能控制端和控制电路构成 的。三态门除了通常的高电平和低电平两种输出状态 外,还有第三种输出状态-高阻态。处于高阻态时,电 路与负载之间相当于开路。
2
双向和三态电路信号赋值
1、三态门设计
3
双向和三态电路信号赋值
1、三态门设计 三态门用途之一是实现总线传输。总线 传输的方式有两种,单向总线和双向总线。 单向总线方式下,要求只有需要传输信息的 那个三态门的控制端处于使能状态,其余各 门皆处于禁止状态。
4
双向和三态电路信号赋值
三态门实现总线传输的原理:
15
双向和三态电路信号赋值
3、三态总线设计 为构成芯片内部的总线系统,必须设计 三态总线驱动器电路(注意,大部分FPGA 中 无法形成三态电路),这可以有多种表达方法, 但必须注意信号多驱动源的处理问题。下面 两个例程都试图描述一个 8位4通道的三态总 线驱动器,但其中一个程序是错误的。
16
双向和三态电路信号赋值
11
双向和三态电路信号赋值
2、双向端口设计
双向端口设计实例
12
双向和三态电路信号赋值
2、双向端口设计
双向端口设计实例
13
双向和三态电路信号赋值
14
双向和三态电路信号赋值
2、双向端口设计
分析:
q定义为双向端口,而x定义为三态控制输出口。 在q履行输入功能时,前者没有将其设定为高 阻态输出,即执行语句:q<=“ZZZZZZZZ”,从 而没有使q成为真正的双向端口,导致了错误 的逻辑电路; 执行语句:q<=“ZZZZZZZZ”,使q 在IF 语句 中有了完整的条件描述,从而克服了时序元件 的引入。
wenku.baidu.com
双向和三态电路信号赋值
1、三态门设计
6
双向和三态电路信号赋值
1、三态门设计
7
双向和三态电路信号赋值
8 位三态控制门电路
8
双向和三态电路信号赋值
1、三态门设计
9
双向和三态电路信号赋值
1、三态门设计
注 意:
由于'Z'在综合中是一个不确定的值,不同的综合 器可能会给出不同的结果,因而对于VHDL 综合前的 行为仿真与综合后功能仿真结果也可能是不同的,有 时虽然能通过综合,但却不能获得正确的时序仿真结 果,所以建议尽可能不要将'Z'用作比较值,或用作表 达式或操作数; 虽然对于关键词,VHDL 语法规定不区分大小写, 但当把表示高阻态的'Z'值赋给一个数据类型为 STD_LOGIC 的变量或信号时,'Z'必须是大写,这是 因为在IEEE 库中对数据类型STD_LOGIC 的预定义 已经将高阻态确定为大写'Z'。 10
24
双向和三态电路信号赋值
课堂练习:
修改8位4通道三态总线驱动器的第一 个设计,使其能综合出正确的电路。
25
一般门与其它电路的连接,无非是两种状态,1或者0。 在比较复杂的系统中,为了能在一条传输线上传送不同部件 的信号,通常采用了总线连接的方式,因为总线只允许同时 只有一个使用者,三态门作为一种扩展逻辑功能的输出级, 它的高阻态,也就是高阻抗,相当于该门和它连接的电路处 于断开的状态,相当于没有接在总线上,不影响其它器件的 工作(因为实际电路中你不可能去断开它,所以设置这样一个 状态使它处于断开状态)。 如果你的设备端口要挂在一个总线上, 必须通过三态缓冲 器。因为在一个总线上同时只能有一个端口作输出, 这时其他 端口必须在高阻态, 同时可以输入这个输出端口的数据。 所以 你还需要有总线控制管理,访问到哪个端口,那个端口的三 态缓冲器才可以转入输出状态。这是典型的三态门应用,如 5 果在线上没有两个以上的输出设备, 当然用不到三态门。
8位4通道三态总线驱动器设计二
21
双向和三态电路信号赋值
22
双向和三态电路信号赋值
...
23
双向和三态电路信号赋值
3、三态总线设计
分析:
设计一中除了input0外,其余3个8位输入端都悬空 没能用上,显然是因为恰好将input0安排作为进程中 output的最后一个激励信号的原因; 设计二中在结构体中使用了4个并列的WHENELSE并行语句,结构体中的每一条并行语句都等同 于一个独立运行的进程,它们独立监测各并行语句中 作为敏感信号的输入值ctl; 设计二表明,要设计出能产生独立控制的多通道的 电路结构,必须使用并行语句结构。