作者arclitetank (More than meet the eye!)
看板Electronics
标题Re: [问题] verilog 语法 inout
时间Wed Nov 4 14:37:37 2009
io pad的 model 大概是长类似这样
inout IO;
input I;
ouput O;
input OE;
assign IO = OE ? I : 1'bz; // bufif1 bufif1_inst(IO, I, OE);
assign O = IO; // buf buf_inst(O, IO);
值得注意的是这是 "verilog simulation model"
真正你想用在电路上的话需要include artisan或是自己做的layout
dc 只负责合成core logic~
※ 引述《ccjin (别活在自己的地狱里)》之铭言:
: 请教各位 假设inout 合成会变成 three-state logic (也许是我搞错了)
: 但是如何做到双向呢 因为就算是 three-state logic 感觉也不能双向沟通
: 还有请教
: module bidir_port(oe, clk, bidir)
: input oe; // 即你所写的oe
: input clk;
: inout bidir;
: wire a; // 要丢出去的资料
: reg b; // 读资料进来处理的位置
: assign bidir = oe ? a : 1'bZ;
: always @(posedge clk)
: begin
: b <= birdir;
: end
: 对於上式 oe = 0; 输出等於高阻抗 不会跟 input 相冲突
: 但是面对 oe = 1; 不就出现 内部资料想输出 但是外部资料也输入
: 这不是就会造成冲突 ?
: 也许这是很简单的问题 却困扰我很久 想请教一下
: 或是有比较好的资料 可提供 我自己研究也可以 谢谢
--
● NY B D A ¯︶¯ NY S J
⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙ ⊙
— — — — — — — — —
郭勇志 勇维拉 宝贝勇 祖马勇 勇-ROD 勇巴西亚 勇塔那 King勇 勇乐迪
张伯勇 冈岛勇树 勇盾
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.251.64.19
※ 编辑: arclitetank 来自: 60.251.64.19 (11/04 14:38)