Vivado HLS C/C++代码仿真 (0)

cpp 复制代码
#include "ap_fixed.h"
typedef ap_fixed<10,8> DTYPE;
typedef ap_fixed<16,2> CTYPE;
void multiAdd(CTYPE c0,CTYPE c1,CTYPE c2,CTYPE c3,DTYPE x0,DTYPE x1,DTYPE x2,DTYPE x3,DTYPE *y);
cpp 复制代码
#include "multiadd.h"
void multiAdd(CTYPE c0,CTYPE c1,CTYPE c2,CTYPE c3,DTYPE x0,DTYPE x1,DTYPE x2,DTYPE x3,DTYPE *y)
{
	*y = c0*x0+c1*x1+c2*x2+c3*x3;
}
cpp 复制代码
#include "multiadd.h"
#include "stdio.h"
#include "stdlib.h"
int main()
{
	CTYPE c0=0.1,c1=0.2,c2=0.3,c3=0.4;
	DTYPE x0=100,x1=100,x2=100,x3=100;
	DTYPE y;
	int yy,i,fail = 0;
	for(i = 0;i<10;i++)
	{
		multiAdd(c0,c1,c2,c3,x0,x1,x2,x3,&y);
		yy = y;
		printf("%d\n",yy);
		if(abs(yy-(100+i))>1)
				{
					fail = 1;
				}
			x0++;x1++;x2++;x3++;
	}

	return fail;
}

其中,multiadd.h是数据类型重定义的头文件,可以自己确定数据精度;

multiadd.cpp是顶层函数实现的cpp文件;

multiadd_tb.cpp是testbench文件.

相关推荐
FPGA小迷弟21 小时前
FPGA面试题汇总整理(一)
学习·fpga开发·verilog·fpga
FPGA小迷弟2 天前
FPGA工程师面试题汇总(二)
学习·fpga开发·verilog·fpga
FPGA小迷弟3 天前
FPGA 时序约束基础:从时钟定义到输入输出延迟的完整设置
前端·学习·fpga开发·verilog·fpga
daxi1503 天前
Verilog入门实战——第3讲:流程控制语句(if-else / case / 循环结构)
fpga开发·fpga
FPGA小迷弟4 天前
高频时钟设计:FPGA 多时钟域同步与时序收敛实战方案
前端·学习·fpga开发·verilog·fpga
FPGA-ADDA5 天前
第三篇:Xilinx Zynq SoC系列——从Zynq-7000到RFSoC
5g·信号处理·fpga·通信系统·rfsoc
dMing`5 天前
基于FPGA的简易数据采集系统
fpga开发·fpga·adc·dac
迎风打盹儿6 天前
FPGA中if-else和case的理解:综合出来的电路真的会有优先级吗?
fpga·优先级·综合·case·if-else
FPGA-ADDA7 天前
第二篇:Xilinx 7系列FPGA详解——从Spartan到Virtex
fpga开发·fpga·sdr·rfsoc
daxi1509 天前
Verilog入门实战——第2讲:核心语法基础(数据类型+赋值语句)
fpga开发·fpga