1 Vivado HLS 简介.doc

上传人:文库蛋蛋多 文档编号:2388330 上传时间:2023-02-17 格式:DOC 页数:15 大小:761.50KB
返回 下载 相关 举报
1 Vivado HLS 简介.doc_第1页
第1页 / 共15页
1 Vivado HLS 简介.doc_第2页
第2页 / 共15页
1 Vivado HLS 简介.doc_第3页
第3页 / 共15页
1 Vivado HLS 简介.doc_第4页
第4页 / 共15页
1 Vivado HLS 简介.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《1 Vivado HLS 简介.doc》由会员分享,可在线阅读,更多相关《1 Vivado HLS 简介.doc(15页珍藏版)》请在三一办公上搜索。

1、用Vivado-HLS实现低latency 除法器George Wang Xilinx DSP SpecialistTable of Contents1VIVADO HLS 简介32创建一个VIVADO-HLS工程42.1打开Vivado HLS GUI42.2创建新工程52.3添加源文件62.4添加测试文件82.5创建solution103C VALIDATION124C SYNTHESIS135EXPLORE 不同新的SOLUTION151 Vivado HLS 简介Xilinx Vivado High-Level Synthesis (HLS) 工具将 C, C+,或者 SystemC

2、设计规范,算法转成 Register Transfer Level (RTL)实现,可综合到Xilinx FPGA。将DSP算法快速转到RTL FPGA 实现将C 至 RTL时间缩短 4 倍基于 C 语言的验证时间缩短100倍RTL 仿真时间缩短 3 倍2 创建一个Vivado-HLS工程2.1 打开Vivado HLS GUI双击桌面上Vivado HLS GUI 图标, 或从Start All Programs Vivado Vivado HLS GUI打开GUI之后,Vivado-HLS welcome界面如下所示:2.2 创建新工程在 Welcome Page, 选择Create Ne

3、w Project2.3 添加源文件指定顶层需要综合的源文件名,并添加文件.本除法器设计采用移位算法#include radix2div.hquotient_t radix2div (dividend_t dividend, / (numerator)divisor_t divisor, / (denominator)remainder_t *remainder / ) #pragma AP latency max=3#pragma AP pipeline quotient_i_t quo, y; / +1 bits unsigned subtract_t sub_out, rem_r; /

4、+1 bits signed boolean_t last_bit, next_bit; loop_cnt_t i; / last_bit = 0; rem_r = 0; if (LOOP_MAX 32) quo = 0ULL; else quo = 0; / div_booth_label0: for (i = 0; i LOOP_MAX; i = i+1) / concurrent blocks sub_out = rem_r - divisor; y = dividend & 1 (LOOP_MAX-i-2); if ( y = 0 ) next_bit = 0; elsenext_bi

5、t = 1;if (sub_out 0) / remainder - denominator is negative quo = quo 1;if (i != LOOP_MAX-1) rem_r = rem_r 1;rem_r = rem_r | next_bit; else / remainder - denominator is positivequo = quo 1;quo = quo | 1;if (i != LOOP_MAX-1) rem_r = sub_out 1;rem_r = rem_r | next_bit; else rem_r = sub_out; / end for*r

6、emainder = rem_r;return quo; 2.4 添加测试文件添加测试文件.#include #include #include radix2div.h/quotient_t radix2div (dividend_t dividend, / (numerator)divisor_t divisor, / (denominator)remainder_t *remainder / );/int test_divider (dividend_t dividend, divisor_t divisor )quotient_t quotient;remainder_t remaind

7、er;quotient = radix2div(dividend,divisor,&remainder);fprintf(stdout, dividend = %u, divisor = %u quotient = %u remainder = %u n, dividend, divisor, quotient, remainder);fprintf(stdout, - n);if (quotient = dividend/divisor) & (remainder = dividend-(divisor*quotient) ) printf (PASS n);else printf (FAIL n);return 1;/int main () int i, j;dividend_t max_num;max_num = 0;j = LOOP_MAX-1;for (i = 0; i new solution。 在同一个工程里面,可以使用同一套源代码,进行不同solutions的尝试。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号