从vhdl到verilog的转换

从vhdl到verilog的转换,vhdl,verilog,Vhdl,Verilog,以下是Testbench中的VHDL语句 size_data <= to_unsigned(16,16); // data stream is 16 bits in size size\u dataVerilog自动进行类型转换 这是一个有符号的值: 有线签名[4:0]我已签名; 分配I_am_签名=16 这是未签名的: wire[4:0]我没有签名; 分配I_am_unsigned=16 这是错误的: wire-signed[3:0]I_-signed_但_太小了_-16; 为16=1

以下是Testbench中的VHDL语句

size_data <= to_unsigned(16,16); // data stream is 16 bits in size

size\u dataVerilog自动进行类型转换

这是一个有符号的值:
有线签名[4:0]我已签名;
分配I_am_签名=16

这是未签名的:
wire[4:0]我没有签名;
分配I_am_unsigned=16

这是错误的:
wire-signed[3:0]I_-signed_但_太小了_-16;
为16=16分配I\u签名,但I\u太小

在最后一种情况下,不保证会收到警告或错误,但大多数编译器都会提供警告或错误。但是,如果它不知道这些值,则不会出现这种情况。这可能会出现可怕的错误:
assign I\u-am\u-signed\u但对于I\u-16,I\u-too\u-small\u=I\u-am\u-signed

但这是一种从有符号转换为无符号的安全方法,反之亦然:
assign I_am_unsigned=I_am_signed;
分配I_am_signed=I_am_unsigned