用verilog写的三态门问题
你的程序可以贴出来啊
不知道啊
一般来讲,在芯片内部不支持使用三态门,只有在芯片与外设打交道时,才能使用三态门。不过据说Xinlinx的FPGA支持内部三态门,不过我没用过,其它的好像都不支持吧!
单独写的三态门:
module buffer(buf_in,buf_chs,buf_out);
input buf_in;
input buf_chs;
output buf_out;
assign buf_out=(buf_chs==0)?buf_in:2'bz;
endmodule
反相器:
module lut_inveter(LUT_IN,LUT_OUT);
input LUT_IN;
output LUT_OUT;
defparam U0.INIT=2'b01;
LUT1 U0(.O(LUT_OUT),.I0(LUT_IN));
endmodule
顶层模块:
module challege(in,chs,out);
input in;
input chs;
output out;
buffer buff(.buf_in(in),.buf_chs(chs),.buf_out(in1));
lut_inveter not1(.LUT_IN(in1),.LUT_OUT(out));
endmodule
如果是搭电路的话有几种三态门在元器件中。用verilog单独写三态门综合后看technology schematic时也有,就是把它例化时用在其他模块就被优化成逻辑单元了
对的,FPGA内部的逻辑不支持三态这一操作的,因为每一个slice由 查找表和 寄存器构成,这根本不可能实现三态,
而在IO口中,是设置了三态结构。所以你这样不可能成功的。
你可以看看 slice的结构,以及IO的结构
那个元器件库,一般在IO端口上使用的。内部基本上不会使用,实际上使用那个元器件也就是定义的线性结构和寄存器,同时连接到io端口上的。
前一段时间比较忙,就没有看帖子的,对不起啊
