请教一下,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没有驱动任何逻辑,也就是没有用到。 data_out<={1'b0,data_in};
我是这样想的,哈哈,也许是我太天真了 ( ⊙ o ⊙ )啊!
告诉你一个多此一举的方法
先将 有符号的装入一个寄存器
假设 Input_Data 是11位
reg rData
always @ ( posedge CLK )
rData <= Input_Data;
再假设 Output_Data 是10位
assign Output_Data = rData;
======================================
别对我丢鸡蛋 ... 我看了手册上有这种写法:data_out<=$signed(data_in);
我原先的那个错误,仔细看了一下,是因为我没有对输出的端口做实际的引脚分配引起的。
页:
[1]