HLS入门实践

文章介绍了HLS(高层次综合)的基本概念,它是将C、C++等高级语言转换为VHDL/Verilog等硬件描述语言的过程,降低了硬件设计的门槛。HLS在FPGA设计中广泛应用,但也存在实现效率问题。文章提供了入门HLS的步骤,包括使用VivadoHLS创建项目、编写C代码并进行C仿真和联合仿真的过程。
摘要由CSDN通过智能技术生成

第11周作业


前言

1.quartus 18.1(破解工具以及下载软件见如下链接链接:https://pan.baidu.com/s/1rqrPR2dHl-1W8S36YxjTkw 提取码:askg,亲测可以使用)
2.vs_ultimate_2010版本(选择2010的原因:vs2019等容易出现找不到路径并且无法添加路径使用的问题) 链接:https://pan.baidu.com/s/1nRZ-mrILCRyHHjFNIs9F8A 提取码:pj57


一、HLS是什么?与VHDL/Verilog编程技术有什么关系?

1、HLS是什么

高层次综合(High-level Synthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++、SystemC等,通常有着较高的抽象度,并且往往不具有时钟或时序的概念。相比之下,诸如Verilog、VHDL、SystemVerilog等低层次语言,通常用来描述时钟周期精确(cycle-accurate)的寄存器传输级电路模型,这也是当前ASIC或FPGA设计最为普遍使用的电路建模和描述方法。

2、HLS与VHDL/Verilog有什么关系

Verilog或VHDL与HLS相比,就好比是几十年前的汇编语言与C语言。RTL设计需要了解VHDL和Verilog等语言,而HLS工具通常使用熟悉的语言,如C / C ++。HLS工具可以处理大多数特定于硬件的实现细节,因此大大降低了软件工程师处理硬件项目的门槛。

二、HLS有哪些关键技术问题?目前存在什么技术局限性?

1、HLS有哪些关键技术问题

FPGA是HLS设计的理想平台,因为它们可以快速进行原型设计,具有快速的设计周期并且具有固有的可重新编程性。现代的HLS工具通常包含用于设计目标的广泛的FPGA技术库。

2、目前存在什么技术局限性

但对于一些简单的逻辑,HLS实现结果较为臃肿。一些简单的逻辑,用HDL实现只需要数十行代码,而HLS的实现结果却相当复杂。

三、HLS入门

1、准备工作

打开Vivado HLS并新建一个工程:
在这里插入图片描述
在这里插入图片描述
选择器件
在这里插入图片描述
在这里插入图片描述

2、代码

led.h

#ifndef _SHIFT_LED_H_
#define _SHIFT_LED_H_
#define CNT_MAX 100000000
//#define CNT_MAX 100
#define FLASH_FLAG CNT_MAX-2
typedef int led_t;
typedef int cnt_t;
void flash_led(led_t *led_o , led_t led_i);
#endif

led.c

#include "led.h"
void flash_led(led_t *led_o , led_t led_i){
cnt_t i;
for(i=0;i<CNT_MAX;i++){
if(i==FLASH_FLAG){
*led_o = ~led_i;
}
}
}

3、仿真

添加C仿真文件:
在这里插入图片描述
C仿真代码:

#include "led.h"
#include <stdio.h>
int main(){
led_t led_i=0x01;
led_t led_o;
const int SHIFT_TIME = 4;
int i;
 for(i=0;i<SHIFT_TIME;i++){
 flash_led(&led_o , led_i);
 led_i = led_o;
 printf("shift_out is %d \n",(int)(led_o&0x01));
 }
 }

进行C仿真与综合
设置顶层文件:
点击 project >选择project seethings>选择 synthesis>browser>选择 flash_led 作为顶层函数
在这里插入图片描述
在这里插入图片描述
project >Run C simulation
在这里插入图片描述
可知仿真成功。

联合仿真
通过C/RTL联合仿真来验证映射出来的RTL电路是否正确。需要注意的是Vivado HLS会利用我们的C Testbench 自动生成Verilog Testbench,同时,联合仿真结束过后,我们可以通过使用 Vivado 或者 Modelsim 来查看仿真波形。
Solution > Run C/RTL Cosimulation:
在这里插入图片描述
仿真结果:
在这里插入图片描述
用Modelsim查看信号,选定wlf文件格式
在这里插入图片描述
选择add wave
在这里插入图片描述
波形图:

在这里插入图片描述


总结

本次作业让我了解到了HLS的相关知识,让我对FPGA更感兴趣。我也上手完成了一个简单的入门级HLS程序来进行学习,为以后更复杂深入的学习作基础。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值