高层次综合(High Level , HLS)是公司推出的最新一代的FPGA设计工具,它能让用户通过编写C/C++等高级语言代码实现RTL级的硬件功能。随着这款工具的出现,软硬之间的区别越来越模糊,即使你对于硬件完全不懂,你也能编写出符合工程功能要求的RTL代码。看到HLS工具具有如此神奇的功能,你是否想立即尝试一下呢?
接下来我们将谈谈HLS相关的简单操作以及C/C++到VHDL的一个转换关系:
首先确保你已经下好了相关套件,并且HLS的(官网有试用的,但只能用一个月)已经下到,然后打开桌面上
,就可以按照一般的软件建工程一样,这里我们写了一个很简单的函数int (int array[2],int [2]);这里我们注意到函数返回值是整形,同时两个形参是都是数组,这个函数代码如下:
int andfunction(int array[2],int array1[2])
{
int i,sum;
sum=0;
for(i=0;i<2;i++)
{
array[i]=i*2;
array1[i]=array[i]+i;
sum+=array1[i];
}
return sum;
}
写好了这个函数后,那么我们不妨看看综合后的VHDL是怎样的。点击绿色三角按钮后生成硬件描述语言,->syn->vhdl里可以看到生成的VHDL,代码如下:
-- ==============================================================
-- RTL generated by Vivado(TM) HLS - High-Level Synthesis from C, C++ and SystemC
-- Version: 2012.4
-- Copyright (C) 2012 Xilinx Inc. All rights reserved.
--
-- ===========================================================
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity andfunction is
port (
ap_clk : IN STD_LOGIC;
ap_rst : IN STD_LOGIC;
ap_start : IN STD_LOGIC;
ap_done : OUT STD_LOGIC;
ap_idle : OUT STD_LOGIC;
ap_ready : OUT STD_LOGIC;
array_r_address0 : OUT STD
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...