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内部计算小数 [转载] 谓定点小数,就是小数点的位置是固定的.我们是要用整数来表示定点小数,由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是浮点数了).既然没有 ...
随机推荐
- iOS之UIAlertView的使用
UIAlertView: 1.普通使用: //普通的alert UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"title&quo ...
- hdu2444
#include <stdio.h> #include <string.h> #define black 1 #define white -1 ]; ]; ][]; int n ...
- Android IOS WebRTC 音视频开发总结(五九)-- webrtc这蛋糕都怎么吃?
本文主要介绍webrtc应用状况,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com WebRTC是个好东东,就好比是 ...
- iOS动画 三维透视投影 m34
transform的结构如下:struct CATransform3D{ CGFloat m11, m12, m13, m14; CGFloat m21, m22, m23, m24; CGFl ...
- IPHONE 字体加粗
UIFONT 没有字体加精参数,但可以修发,字体名,达到加粗的效果正常:Helvetica加粗"Helvetica-Bold""TimesNewRomanPS-BoldM ...
- Hive[2] 基础介绍
2.3 Hive 内部介绍: P44 $HIVE_HOME/lib 下的 jar 文件是具体的功能部分:(CLI模块) 其它组件,Thrift 服务,可以远程访问其他进程功能:也有使用 JDBC 和 ...
- 为 HTML 添加新元素
你可以为 HTML 添加新的元素. 该实例向 HTML 添加的新的元素,并为该元素定义样式,元素名为 <myHero> : 实例 <!DOCTYPE html> <htm ...
- SQLite开发工具
Sqlite 管理工具 SQLiteDeveloper及破解 功能特点 表结构设计,数据维护,ddl生成,加密数据库支持,sqlite2,3支持 唯一缺憾,收费,有试用期 下载地址: http://w ...
- LevelDB源码剖析
LevelDB的公共部件并不复杂,但为了更好的理解其各个核心模块的实现,此处挑几个关键的部件先行备忘. Arena(内存领地) Arena类用于内存管理,其存在的价值在于: 提高程序性能,减少Heap ...
- C++ string 转 char*
string 转到 char* char name[20]; string sname=GatherName[n]; strcpy(name,sname.c_str());