ug871 Lab4

本文介绍了如何在VitisHLS2021.2环境下进行实验,包括创建工程、添加源文件和测试文件,以及设置块级I/O协议和使用HLS接口。通过示例展示了如何在C++代码中使用#pragmaHLSINTERFACE指令来控制输入输出协议。
摘要由CSDN通过智能技术生成

实验平台

        Vitis HLS 2021.2

        Windows 10

实验内容

        什么是块级I/O协议和如何去使用它们。

实验步骤

Step 1:创建和打开工程

  1. 在Lab4文件夹下,创建run_hls.tcl
    1. # 重置和创建工程
      open_project -reset adders_prj
      
      # 添加源文件
      add_files src/adders.cpp
      add_files src/adders.hpp
      # 添加测试文件
      add_files -tb src/adders_test.cpp
      # 设置顶层函数
      set_top adders
      
      # 创建解决方案
      open_solution -reset solution1
      
      # 设置使用芯片
      set_part {xc7z020-clg400-2}
      # 这是时钟频率
      create_clock -period 10 -name default
      
      # 源码仿真
      csim_design
      
      退出HLS
      exit
      
  2. 创建src文件夹
    1. 在src文件夹下创建adders.cpp、adders.hpp、adders_test.cpp三个文件
    2. /*******adders.hpp******/
      #ifndef ADDERS_H_
      #define ADDERS_H_
       
      int adders(int in1, int in2, int in3);
      
      #endif
      
      /*******adders.cpp******/
      #include "adders.hpp"
      
      int adders(int in1, int in2, int in3) {
      #pragma HLS INTERFACE ap_ctrl_none port=return
      
      // Prevent IO protocols on all input ports
      #pragma HLS INTERFACE ap_none port=in3
      #pragma HLS INTERFACE ap_none port=in2
      #pragma HLS INTERFACE ap_none port=in1
      
      	int sum;
      	sum = in1 + in2 + in3;
      	return sum;
      }
      
      /*******adders_test.cpp******/
      #include <stdio.h>
      #include "adders.hpp"
       
      int main()
      {
      	int inA, inB, inC;
      	int sum;
      	int refOut[5] = {60, 90, 120, 150, 180};
      	int pass;
      	int i;
      
      	inA = 10;
      	inB = 20;
      	inC = 30;
      
      	for (i=0; i<5; i++)
      	{
      		sum = adders(inA, inB, inC);
      		fprintf(stdout, "  %d+%d+%d=%d \n", inA, inB, inC, sum);
      		if (sum == refOut[i])
      			pass = 1;
      		else 
      			pass = 0;
      		inA=inA+10;
      		inB=inB+10;
      		inC=inC+10;
      	}
      
      	if (pass)
      	{
      		fprintf(stdout, "----------Pass!------------\n");
      		return 0;
      	}
      	else
      	{
      		fprintf(stderr, "----------Fail!------------\n");
      		return 1;
      	}
      }
      

  3. 使用HLS打开Project

Step 2:创建和审查默认I/O协议

  1. 点击Run C Synthesis
  2. 删除#pragma HLS INTERFACE ap_ctrl_none port=return
  3. 再点击Run C Synthesis

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值