Ian11122840 发表于 2010-11-30 10:45:03

问个不起眼的问题 ,output的reg赋值为高阻可以输出高阻吗?

做一个并行总线,不知该用寄存器reg还是用wire来输出数据,并实现高阻,帮忙看下~~

reg Dat;

        if( (Addrslatch==16'H0001) || (RWn==1'b1) )
                Dat = cnumber;
                else Dat = 16'bzzzz_zzzz_zzzz_zzzz;//

编译没有问题,就是不知能不能实现~~

Ian11122840 发表于 2010-11-30 10:46:59

因为我只见过线是可以高阻的,reg是怎样高阻的啊,。。{{{(>_<)}}}

usingavr 发表于 2010-11-30 10:56:06

代码是可以这样写的。可不可以实现要单具体的综合器

leafing 发表于 2010-11-30 11:21:54

高阻态最后是在io pad处实现的,不是在register处实现的

Ian11122840 发表于 2010-11-30 12:55:13

回复【2楼】usingavr
代码是可以这样写的。可不可以实现要单具体的综合器
-----------------------------------------------------------------------

我是用的Quartus 9.0,

这样写会有问题吗?,怎么改好呢?。。

usingavr 发表于 2010-11-30 14:59:30

回复【楼主位】Ian11122840船儿
做一个并行总线,不知该用寄存器reg还是用wire来输出数据,并实现高阻,帮忙看下~~
reg dat;
        if( (addrslatch==16'h0001) || (rwn==1'b1) )
                dat = cnumber;
                else dat = 16'bzzzz_zzzz_zzzz_zzzz;//
编译没有问题,就是不知能不能实现~~

-----------------------------------------------------------------------

大概是这样吧,很久没写verilog了,不保证对
reg dat;
always @(addrslatch or rwn or cnumber) begin
    dat <= ((addrslatch == 16'h0001) || (rwn == 1'b1))
            ? cnumber
            : 16'dz;
end

Ian11122840 发表于 2010-11-30 19:37:03

回复【5楼】usingavr
-----------------------------------------------------------------------

谢啦~~./emotion/em021.gif
页: [1]
查看完整版本: 问个不起眼的问题 ,output的reg赋值为高阻可以输出高阻吗?