主要内容

实现Hardware-Efficient双曲正切

这个案例展示了如何计算一个给定的双曲正切实值的数据集使用hardware-efficient MATLAB®代码嵌入到仿真软件®模型。金宝app在这个例子中使用的模型是适用于定点输入HDL代码生成。算法使用了一个架构,股价计算和内存单元在不同的步骤,这是有益的,当部署以FPGA和ASIC设备受限资源。这个实现从而有一个较小的吞吐量比完全管道化实现,但它也有一个小芯片上的足迹,使它适合resource-conscious设计。

双曲正切

双曲正切函数双曲循环的模拟 棕褐色 函数,定义为双曲正弦和双曲余弦函数的比值为给定角度 α

双曲正切 ( α ) = sinh ( α ) cosh ( α )

CORDIC算法

CORDIC坐标旋转数字计算机的缩写,并可以用来有效地计算许多三角函数和双曲函数。详细解释的CORDIC算法及其应用的计算三角函数,看看使用CORDIC计算正弦和余弦旋转内核

硬件高效定点计算

双曲正切HDL优化块支持定点数据与HDL代码生成二进制小数点伸缩。金宝app设计时考虑到这个应用程序中,使用硬件特定语义和优化。这些优化之一是资源共享。

当部署复杂的算法来FPGA和ASIC的设备,通常会有资源使用与总吞吐量之间的权衡对于一个给定的计算。完全管道化和并行算法具有最大的吞吐量,但他们往往需要投入太多资源部署在实际设备。通过实现调度逻辑围绕一个或几个核心计算电路,可以重用在计算资源。结果是一个实现一个小得多的足迹,在总吞吐量降低的成本。这通常是一个可接受的协议,资源共享的设计仍然可以满足整体延迟的要求。

所有关键的计算单位的双曲正切HDL优化块重用整个生命周期计算。这不仅包括CORDIC电路用于执行吉文斯旋转,而且该方案和乘数用于更新的角度。这节省了DSP和织物当部署到FPGA和ASIC设备资源。

金宝app支持的数据类型

单,双,二进制小数点定点,二进制小数点scaled-double数据类型支持模拟。金宝app然而,只有二进制小数点了定点数据类型支持HDL代码生成。金宝app

与双曲正切HDL优化块

双曲正切HDL优化块接受数据时准备好了输出高,表明块准备开始一个新的计算。将输入数据块,validIn信号必须断言。如果块成功将de-assert寄存器的输入值准备好了信号,用户必须等到信号是断言再次发送一个新的输入。总结了这个协议在以下波图。注意第一个有效的输入块被丢弃,因为块并不准备接受输入数据。

当块完成计算和准备发送输出,它将断言validOut一个时钟周期。然后准备好了将断言,这表明块是准备接受一个新的输入值。

模拟模型的例子

打开示例模型在命令行输入:

mdl =“fxpdemo_tanh”;open_system (mdl)

模型包含了双曲正切HDL优化块连接到一个数据源将数组的输入和将输入值的数组传递给双曲正切HDL优化块时准备接受一个新的输入。输出计算每个值存储在一个工作空间变量。仿真终止时所有输入处理。

定义一个数组的输入,tanhInput。对于这个示例,输入是双打。

tanhInput = 10:0.05:10;

模拟模型。

sim (mdl);

仿真完成后,一个新的工作空间变量,tanhOutput创建,每个输入的计算值。

策划的输出

图计算的误差通过比较双曲正切HDL的输出优化块的MATLAB®双曲正切函数。

图(1);情节(tanhInput tanhOutput——双曲正切(tanhInput '));包含(“x”);ylabel (“错误”);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。