作者horsehead ( NNNN)
看板Electronics
标题[问题] tri-state buffer
时间Sat Dec 22 09:06:51 2007
各位大大好 目前我这边有一个关於双向汇流排的问题
一般要做双向 在verilog 里面语法为宣告一个 inout port
(ex: inout ti ) 而我查过一些文献 他有一句比较关键的语法如下
assign tmp = oen ? a : 1'bz;
其中tmp 为宣告成inout的bidirection a为一内部信号 oen 为一外部控制信号
控制 tmp 为输入或输出
当chip 一上电後因为我们无法推算各逻辑的值是多少,所以会需要有enable或reset
信号来控制所有暂存器一开始那段时间的状态 , 不过enable或reset也是逻辑讯号
他们也是需要外部触发来驱动(ex 手动按钮或是另一个晶片发出信号给他)
因此要是当这些信号还没被driving之前在实体电路上我们依样无法推算他的电位
因此我想上面程式码的oen信号也会是同样情形,那们我们依样无法掌握tri-state
buffer到底是被接通变成output或是处於高阻抗状态,那在这不明的情况下双向汇流排
上的晶片有可能处於两边都是output且一个drivig high 一个driving low 导致短路使
晶片烧毁
我想问的问题是现在有没有什麽常用的设计规范用来减少这种风险(也许是
我多虑,不过因为我对tri-state的经验并不丰富所以无法断言,其实上述状况我是只针对
系统刚上电的暂态部分,因为如果是良好的设计我相信当系统run过一段时间各个点的值
都可以推算出来,因此可以正确去规避这种危险)
不好意思字有点多 @@ 还请大大们指教 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.77.48