在verilog设计中,如何将特定位数的数值转换成32位signed型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在verilog设计中,如何将特定位数的数值转换成32位signed型?相关的知识,希望对你有一定的参考价值。

具体问题如下,在ISE中调用CORDIC(sincos)和乘法器IP核(multi_32_32)。其中,fi_left为16位(第1位位符号位,第2,3位为整数位,其余为小数位),cos_fi_left和sin_fi_left 为16位(第1位为符号位,第二位位整数位,其余为小数位)。由于下面计算需要用到乘法器,其中,乘法器输入为32位的signed型。请问,我改如何进行转换?谢谢!!
sincos U1 (
.phase_in(fi_left), // input [15 : 0] phase_in
.x_out(cos_fi_left), // output [15 : 0] x_out
.y_out(sin_fi_left), // output [15 : 0] y_out
.clk(clk) // input clk
);
multi_32_32 U2(
.clk(clk),
.a(cos_fi_left), // input [31:0]
.b(sin_fi_left), // input [31:0]
.p(result_U2) //output [63:0]
);

参考技术A 直接把高16位都用【15】位代替16a[15],a[15:0]

如何将自己写的verilog模块封装成IP核

参考技术A 将你的设计制作成blackbox,也就是网表文件,这样别人看不到你的设计但是可以调用你的模块了。
blackbox只是普通网表而已。xst的综合结果就可以直接作为blackbox使用。
通常blackbox外部还会连接其他逻辑,所以blackbox中一般不插入iobuf。在xst属性中去除insert
io
buffer的选项。

以上是关于在verilog设计中,如何将特定位数的数值转换成32位signed型?的主要内容,如果未能解决你的问题,请参考以下文章

xilinx /FPGA/ verilog HDL不同位数的数相加,如何进行?

在SQL语句里面如何将字符型转换成数字型?

如何将自己写的verilog模块封装成IP核

verilog里的位宽是啥概念?

ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?

Javascript如何将十进制数转换为具有特定小数位数的字符串