有没有C语言转换成Verilog的工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有C语言转换成Verilog的工具相关的知识,希望对你有一定的参考价值。

参考技术A C和VerilogHDL是两码事情。
C语言是高级程序语言,程序是什么呢?程序说白了就是一个过程。C语言描述的其实就是一个过程,它的代码是顺序执行的。
而什么是HDL呢?它描述的是硬件,也就是描了一对逻辑电路与非门之类的是怎么连接的,它并不是一个过程的描述,是一种硬件布线和连接的描述。Verilog的代码中各模块是并行同步执行的。
所以,并不存在C语言向Verilog语言转化的概念。试问如何将一个抽象的过程转化为具体的硬件呢?这是不合理的。本回答被提问者和网友采纳
参考技术B Vivado HLS(高级综合),可以将C转化为Verilog和VHDL代码,不过需要你自己加相应的Directives 参考技术C 没有的,软件编程和硬件编程是两个不同的概念。

在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]

以上是关于有没有C语言转换成Verilog的工具的主要内容,如果未能解决你的问题,请参考以下文章

怎么把汇编转换成C语言

在C语言中,输入一个数值,将它转换成弧度,怎么转换?

C语言有没有个语句可以把short转换成char[]

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

请教:C语言中如何将一字符串转换成无符号整型

任意十进制数转换成ASCII码C语言程序