在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8929|回复: 23

[原创] 基本运算单元的高层次综合:C/C++ to RTL

[复制链接]
发表于 2010-1-20 15:53:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本文以加法为例:
----------------------------------------------------
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)
发表于 2010-1-20 16:12:04 | 显示全部楼层
这个例子实在是让人费解啊。到底是C是高级语言还是VerilogHDL是高级语言呢?我看明明HDL是高级语言。比如加法。a和b在HDL里面可以是任意位,1024位都可以。可C里面a和b只能是int。
 楼主| 发表于 2010-1-21 11:26:13 | 显示全部楼层
2# jiku

这里只是正好用了int(32位),工具也支持任意位的C版本,例如:int1,int2,uint3等等。
另外,这个例子是最简单的例子,高层次综合和直接RTL设计相比没有什么优势。但是如果是一个复杂的项目,采用高层次综合流程要省时省力的多。比如mpeg4 decoder,DQPSK Receiver等设计
发表于 2010-1-22 19:02:05 | 显示全部楼层
??????????
发表于 2010-1-22 23:40:38 | 显示全部楼层
分卷多那 我也就多支持下啊
发表于 2010-1-23 06:30:55 | 显示全部楼层
这个例子和高层次综合有什么关系?
发表于 2010-1-23 11:26:03 | 显示全部楼层
AutoPilot??????????
 楼主| 发表于 2010-1-25 13:06:11 | 显示全部楼层
6# zhenleo

这个例子的确简单。
主要是说明From C to RTL的可行性
任何算法都是由这些基本单元组成,基本单元可以用HLS(High-level Synthesis)工具综合成RTL,那么一个个完整的算法用这种工具也完全可行。
 楼主| 发表于 2010-1-25 13:07:29 | 显示全部楼层
7# whxqq 嘿嘿,不错,就是AutoPilot
发表于 2010-1-25 20:29:02 | 显示全部楼层
大学生千万不要学习高级综合,先把电路基础打扎实,
学习数字逻辑设计和数字信号处理,以及计算机系统结构才是更有价值的东西。

了解高级综合可以,学习高级综合有点好高骛远,眼高手低了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-7 18:44 , Processed in 0.502429 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表