基本运算单元的高层次综合:C/C++ to RTL
2010-05-26 14:27
204 查看
本文以加法为例:
[/size]
HLS工具(AutoPilot)综合之后的结果:
[/size]
[/size]
备注:加减乘除、位运算、逻辑运算等等基本的C/C++运算都可以很方便的用AutoPilot综合成对应的RTL代码(verilog/vhdl)[/size]
//---------------------------------------------------- //adder.c //--------------------------------------------------- void adder(int a, int b, int *sum) { *sum = a + b; }[size=3]
[/size]
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[size=3]
[/size]
//--------------------------------------------------- //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;[size=3]
[/size]
备注:加减乘除、位运算、逻辑运算等等基本的C/C++运算都可以很方便的用AutoPilot综合成对应的RTL代码(verilog/vhdl)[/size]
相关文章推荐
- C++编写二元多项式,并实现基本的加减运算
- c++基本数据结构和基本运算
- C++ 简单信息的表示和基本运算
- C++实现对数学基本运算表达式的解析
- 矩阵基本运算的实现(standard C++Version)
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- c++项目--集合的并差交综合运算
- c++课程设计 对日期的基本运算 使用重载
- C/C++ 第三周线性表项目(1) 顺序表的基本运算
- c++课程设计 对日期及时间的基本运算(时间类和日期类) 使用重载
- C++实现对数学基本运算表达式的解析
- 第八周项目四C/C++对称矩阵的压缩存储及基本运算
- 定义一个不受计算机字长限制的整数类INT,要求INT与INT以及INT与C++基本数据类型int之间能进行+、-、×、÷和=运算,并且能通过cout输出INT类型的值。(持续添加)
- C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结
- What happens when more restrictive access is given to a derived class method in C++?
- c++基本数据结构的类的用法--栈,队列,链表
- verilog程序,ISE 10.1环境下,综合出错“ this signal is connected to multiple drivers.”
- 基本算法——第二单元 高精度和进制转换
- 【opencv】Mat 基本运算
- C++ STL string 大小写转换时的 no matching function for call to ‘transform 错误