FPGA内部信号避免高阻态
RT,否则警告Warning: Tri-state node(s) do not directly drive top-level pin(s),会利用或门代替中间的扇出fan-out.
原因:在进行FPGA设计时,对于FPGA内部的信号不能出现被赋值为高阻的状态,只有顶层的信号,即输出的信号才可以赋值为高阻态。
找出这个信号,然后把赋值为x'bz改为x'b0或x'b1(具体是改为x'b0还是x'b1要根据实际情况确定,x也行)。
CAUSE: The design contains tri-state nodes that drive non-tri-state logic, but the chip does not support internal tri-states. As a result, the Quartus II software converts all the tri-state nodes feeding internal logic to an equivalent logic.
ACTION: Avoid this warning by either removing the non-tri-state fan-outs of the affected tri-state nodes or replacing the tri-state nodes with non-tri-state logic.
实例:
module tri_state (input oe1, data1, in, output out, output bidir);
wire tribuf;
assign tribuf = oe1 ? data1 : 1'bz;
and(out, in, tribuf);
assign bidir = tribuf;
endmodule
Warning: Tri-state node(s) do not directly drive top-level pin(s)
Warning: Converted the fan-out from the tri-state buffer "tribuf" to the node "comb" into an OR gate
RTL视图:

Technology Map Viewer:

CAUSE:The specified tri-statebuffer feeds internal logic in addition to feeding tri-statelogic, but the chip does not support internal tri-states. As a result, the Quartus II software converts the non-tri-statefan-out(s) of the tri-statebuffer to an ORgate.
Consider the following design:
module test1 (input oe1, data1, in, output out, inout bidir);
wire tribuf, tmp;
assign tribuf = oe1 ? data1 : 1'bz;
and(tmp, in, tribuf);
assign bidir = tribuf;
assign out = tmp;
endmodule
Here, the tri-statebuffer tribufhas fan-outs to both the tri-stateand non-tri-statenodes. As a result, the fan-out to the non-tri-statenode is converted to !oe1 + data1.
Note that an inversion also counts as non-tri-statelogic. So, the node tribufin the design test2is also converted to an ORgate.
module test2 (input oe1, data1, output out, inout bidir);
wire tribuf;
assign tribuf = oe1 ? data1 : 1'bz;
assign bidir = tribuf;
assign out = !tribuf;
endmodule
Additionally, a tri-statebuffer feeding the output enable signal of another tri-statebuffer is also converted to logic.
Consider the following Verilog design:
module test3 (input oe1, data1, data2, inout bidir);
wire tribuf1, tribuf2;
assign tribuf1 = oe1 ? data1 : 1'bz;
assign tribuf2 = tribuf1 ? data2 : 1'bz;
assign bidir = tribuf2;
endmodule
Here, the tri-statebuffer tribuf1is converted to an ORgate.
ACTION:Avoid this warning by either removing the non-tri-statefan-out of the tri-statebuffer or replacing the tri-statebuffer with non-tri-statelogic.
FPGA内部信号避免高阻态的更多相关文章
- FPGA中的INOUT接口和高阻态
除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上 ...
- gpio高阻态
配置gpio为高阻态:将gpio设为GPIO_INPUT,GPIO_NO_PULL即可
- 关于 FPGA 内部信号扇入扇出
扇入.扇出系数 扇入系数是指门电路允许的输入端数目.一般门电路的扇入系数为1—5,最多不超过8.扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力.一般门电路的扇出系数为8,驱动器的扇出系数 ...
- FPGA引脚锁定 注意err和高阻状态
1.fpga没有用的的管脚一定要设置成高阻状态设置路径如下: Assignmen->Device->Device&Pin Option->Unused pins->As ...
- FPGA内部动态可重置PLL讲解(一)
SDRAM驱动需要两个时钟,一个是控制时钟,一个是驱动时钟,这两个时钟有一个相位差,如何产生高精度的时钟是SDRAM能够正常工作的关键,采用FPGA内部动态可重置PLL生成SDRAM所需要的时钟频率. ...
- FPGA 内部详细架构你明白了吗?
FPGA 芯片整体架构如下所示,大体按照时钟域划分的,即根据不同的工艺.器件速度和对应的时钟进行划分: FPGA 内部详细架构又细分为如下六大模块: 1.可编程输入输出单元(IOB)(Input Ou ...
- FPGA内部IP核DDS
项目当中需要正弦信号与余弦信号,首先想到了DDS芯片,例如AD9833.AD9834.由于还需要用FPGA 做一些数据处理,后来干脆直接用FPGA 内部的DDSIP核,同时根据IP核内部的相位累加 ...
- FPGA内部硬件结构简介
我们知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑.可编程I/O.互连线.IP核等资源,很多学过数字电路的人都知道与或非门可以构成几乎所有的数字电路,但是FPGA内部最基本的主要单 ...
- 【转】FPGA内部小数计算
FPGA内部计算小数 [转载] 谓定点小数,就是小数点的位置是固定的.我们是要用整数来表示定点小数,由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是浮点数了).既然没有 ...
随机推荐
- Android fragment 想activity 传送数据
fragment可以通过定义 fragment的接口的方法来 想activity传送数据: 而activity则是通过实现 fragment的接口来接收fragment的送来的数据: 1.在fragm ...
- plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致 (2014-07-25 18:40:34)转载▼ 标签: it 分类: Database Databa ...
- CentOS学习笔记--账号管理与权限配置
Linux 的账号管理与权限配置 管理员的工作中,相当重要的一环就是『管理账号』啦! 使用者标识符: UID 与 GID 虽然我们登陆 Linux 主机的时候,输入的是我们的账号,但是其实 Linux ...
- objective-C运算符和表达式
运算符可以分为以下几种: 算术运算符:+,-,*,/,%,++,—-. 关系运算符:<,>,<=,>=,==,!= 布尔逻辑运算符:!,&&,|| 位运算符:| ...
- luigi学习5-task详解
task是代码执行的地方.task通过target互相依赖. 下面是一个典型的task的大纲视图. 一.Task.requires requires方法用来指定本task的依赖的其他task对象,依赖 ...
- Mongod(5):启动命令mongod参数说明
Mongodb启动命令mongod参数说明(http://blog.csdn.net/fdipzone/article/details/7442162) mongod的主要参数有: 基本配置 ---- ...
- “requireJs前传”之为什么要用前端模块化?
对于没有接触过后台的前端同学想要理解模块化是很困难的,鉴于未来的趋势,以下是我转载的一篇文章,希望对大家有用! 特此声明:转载文章,不喜勿喷.和谐前端,世界和平!0.0 模块的写法 随着网站逐渐变成” ...
- php教程一,变量
php是一种动态脚本语言,比较适合web开发. php支持8种变量数据类型: 四种标量类型: boolean(布尔型) integer(整型) float(浮点型,也称作 double) string ...
- 菜鸟的js学习笔记
学的越多感觉不会的越多.php+mysql学了点皮毛.知道搞web的是要会js的于是开始结合公司的项目开始学习js之旅(http://www.w3school.com.cn/b.asp) $(docu ...
- Java 第二天
1.不带访问修饰符号的类成员变量默认是friendly(可以同一个包中访问) 2.protected的类成员可以在同一个包及其子类中访问 3.方法中可以定义内部类(如下面的代码),该类只能访问方法中的 ...