FlashNuk 发表于 2010-8-21 18:12:51

请教一下,verilog hdl中,如何将10位无符号数赋值给11位有符号数?

请教一下,verilog hdl中,如何将10位无符号数赋值给11位有符号数?

input data_in;
input signeddata_out;

always@...

data_out<=data_in;

end

直接将data_in赋值给data_out,编译后提示data_in没有驱动任何逻辑,也就是没有用到。

maqingbiao 发表于 2010-8-21 20:40:35

data_out<={1'b0,data_in};
我是这样想的,哈哈,也许是我太天真了

akuei2 发表于 2010-8-21 21:01:13

( ⊙ o ⊙ )啊!
告诉你一个多此一举的方法


先将 有符号的装入一个寄存器
假设 Input_Data 是11位

reg rData

always @ ( posedge CLK )
   rData <= Input_Data;

再假设 Output_Data 是10位

assign Output_Data = rData;

======================================

别对我丢鸡蛋 ...

FlashNuk 发表于 2010-8-21 21:42:47

我看了手册上有这种写法:data_out<=$signed(data_in);

我原先的那个错误,仔细看了一下,是因为我没有对输出的端口做实际的引脚分配引起的。
页: [1]
查看完整版本: 请教一下,verilog hdl中,如何将10位无符号数赋值给11位有符号数?