hanbin08041813 发表于 2011-2-26 18:47:23

一个神奇的{{}}问题--verilog

(1)assign readdata = {2{{address == 0}}} && out_data;
(2)assign readdata = (address == 0) ? out_data : 0;

这两句话有什么区别吗???

当address = 0 的时候,readdata = 2’b11 && out_data = out_data; 两式一样

当address != 0 的时候,readdata = 2’b00 && out_data = 0; 两式还是一样



“时间是检验真理的唯一标准”,用verilog RTL测试
(1)

module verilog_test

(
    input        address,
    input        out_data,
    output        readdata
);
assign readdata = {2{{address == 0}}} && out_data;
endmodule



出现了这样的警告
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618598ZVTX5Y.jpg
(原文件名:1.jpg)

这不现实啊,

RTL如下:
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618599NM8HKA.jpg
(原文件名:2.jpg)

看不太懂!!!



(2)

module verilog_test

(
    input        address,
    input        out_data,
    output        readdata
);
assign readdata = (address == 0) ? out_data : 0;
endmodule



这个没那个高位始终为0的警告,出来的效果也是我们可想而知的,RTL如下

http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618600QVAYX2.jpg
(原文件名:3.jpg)


可这是为什么捏??不应该一样的吗???


顺便说下,当然RTL绝对不可能是一样的,一个是与门 一个是选择器,但是出现readdata 高位始终为0,这个实在想不通

hanbin08041813 发表于 2011-2-26 18:54:54

不好意思搞错了不应该是&&
如果是&& ,那样outdata 要么= 0,要么= 1,前面的也一样,所以只是最后一位的变化

但是改成& 就好了
ok

http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618607MAAYPW.jpg
(原文件名:4.jpg)

hanbin08041813 发表于 2011-2-26 19:04:54

还是问个有脑子的问题吧:
这是我简化的SOPC生成好驱动发光二极管(output only 为例),如下:
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618611W08S2N.jpg
(原文件名:未命名.jpg)

clk_en 压根没用到,他这样写有什么意思呢??
还有 led 是output的,拿是write,还要readdata有什么意思呢?
看了Avalon-MM 还是懵懂

hanbin08041813 发表于 2011-2-26 20:05:43

看了Avalon-MM Interface Specification 的pdf,里面对address是这样定义的:
Specifies an offset into the slave address space. Each slave address value selects a word of slave data. For example,
address= 0 selects the first <slave data width> bits of slave data; address=1 selects the second <slave data width> bits of slave data.

就是特殊的从机中偏移量,每个地址选择一个字(16bit)的数据。例如:addr=0,一个字节的数据;addr=1,又是一个字节的数据

但是看看上面SOPC自己生成的 ,为什么output是2位的 <<16位,address却要2位呢???1位不时候了啊??
页: [1]
查看完整版本: 一个神奇的{{}}问题--verilog