基本运算单元的高层次综合:C/C++ to RTL
----------------------------------------------------
adder.c
---------------------------------------------------
void adder(int a, int b, int *sum)
{
*sum = a + b;
}
---------------------------------------------------
HLS工具(AutoPilot)综合之后的结果:
---------------------------------------------------
adder.v
---------------------------------------------------
`timescale 1 ns / 1 ps
module adder (
a,
b,
sum
);
input [31:0] a;
input [31:0] b;
output [31:0] sum;
assign sum = (b + a);
endmodule //adder
---------------------------------------------------
adder.vhd
---------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
library work;
use work.AESL_components.all;
entity adder is
port (
a : IN STD_LOGIC_VECTOR (31 downto 0);
b : IN STD_LOGIC_VECTOR (31 downto 0);
sum : OUT STD_LOGIC_VECTOR (31 downto 0) );
end;
architecture behav of adder is
begin
sum <= esl_add(b, a);
end behav;
---------------------------------------------------
备注:加减乘除、位运算、逻辑运算等等基本的C/C++运算都可以很方便的用AutoPilot综合成对应的RTL代码(verilog/vhdl)
这个例子实在是让人费解啊。到底是C是高级语言还是VerilogHDL是高级语言呢?我看明明HDL是高级语言。比如加法。a和b在HDL里面可以是任意位,1024位都可以。可C里面a和b只能是int。
2# jiku
这里只是正好用了int(32位),工具也支持任意位的C版本,例如:int1,int2,uint3等等。
另外,这个例子是最简单的例子,高层次综合和直接RTL设计相比没有什么优势。但是如果是一个复杂的项目,采用高层次综合流程要省时省力的多。比如mpeg4 decoder,DQPSK Receiver等设计
?
分卷多那 我也就多支持下啊
这个例子和高层次综合有什么关系?
AutoPilot?
6# zhenleo
这个例子的确简单。
主要是说明From C to RTL的可行性
任何算法都是由这些基本单元组成,基本单元可以用HLS(High-level Synthesis)工具综合成RTL,那么一个个完整的算法用这种工具也完全可行。
7# whxqq 嘿嘿,不错,就是AutoPilot
大学生千万不要学习高级综合,先把电路基础打扎实,
学习数字逻辑设计和数字信号处理,以及计算机系统结构才是更有价值的东西。
了解高级综合可以,学习高级综合有点好高骛远,眼高手低了。
看看一下
10# usb_geek 同意这个观点。
学生还是要从基础学起,毕竟高层次综合还很不成熟。
但是IC设计公司来说,尝试采用新的工具,新的流程还是很有必要的。
大学生千万不要学习高级综合,先把电路基础打扎实,
学习数字逻辑设计和数字信号处理,以及计算机系统结构才是更有价值的东西。
了解高级综合可以,学习高级综合有点好高骛远,眼高手低了。
---------------这是真理------------
这个还没仔细研究过,得好好看一下
这玩意没有什么实用价值
这个例子的确简单。
主要是说明From C to RTL的可行性
同意10楼观点,
再说,以后真要玩高级语言,也应是SV,SC之类的开始吧,靠得更近点,且已经发展了好久了
我看很多硬件设计大公司都是从C/C++开始设计的,不是从verilog。硬件设计的C/C++和软件设计里面C/C++侧重点有不同吗?有没有什么书讲硬件C/C++建模的?
第一次听说这个软件,长见识了
不过是否好用呢?
