这是来自Testbench的以下VHDL语句;
size_data <= to_unsigned(16,16); // data stream is 16 bits in size如何将其转换为verilog?
发布于 2018-04-29 14:00:54
Verilog会自动进行类型转换。
这是一个有符号的值:
wire signed [4:0] I_am_signed; assign I_am_signed = 16;
这是未签名的:
wire [4:0] I_am_unsigned; assign I_am_unsigned = 16;
这是错误的:
wire signed [3:0] I_am_signed_but_too_small_for_16; assign I_am_signed_but_too_small_for_16= 16;
在最后一种情况下,您不能保证得到警告或错误,但大多数编译器都会提供警告或错误。然而,如果它不知道这些值,情况就不会是这样。这可能会出现可怕的错误:
assign I_am_signed_but_too_small_for_16 = I_am_signed;
但这是一种从有符号转换到无符号或反之亦然的安全方法:
assign I_am_unsigned = I_am_signed; assign I_am_signed = I_am_unsigned;
https://stackoverflow.com/questions/50083745
复制相似问题