购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.13 浮点数运算IP核的应用

很明显,读者会发现,在本章前面一节介绍浮点数运算的HDL描述方法时,使用的是VHDL提供的浮点运算库。在使用Quartus Prime Pro 2019.4集成开发环境对设计执行完Analysis Synthesis后,然后通过Technology Map Viewer(Post-Mapping)查看综合后的网表结构,你会看到浮点运算使用了Intel FPGA内大量的逻辑设计资源。很明显,这会降低浮点运算的整体性能,设计在“性能”和“面积”方面都很难满足设计要求。

3.13.1 浮点IP核的功能

Intel FPGA的一个显著优势就是在其FPGA内集成了可以直接实现浮点数字信号处理的DSP阵列,配合Intel提供的Floating Point Functions Intel FPGA IP核,可以实现高性能的浮点运算,并且不会使用FPGA内的逻辑设计资源,很好地实现了“面积”和“性能”的权衡。

Floating Point Functions Intel FPGA IP核的主要特性包括:

(1)支持浮点格式;

(2)输入支持不是一个数(not-a-number,NaN)、无穷大、零和普通的数;

(3)可选的异步输入端口,包括异步清除(aclr)和时钟使能(clk_en);

(4)支持舍入到最近的舍入模式;

(5)根据IEEE-754标准,计算任何数学运算的结果,最后一位(u.l.p)的误差最大为1个单位。该假设适用于除复杂矩阵乘法和逆运算(如ALTFP_MATRIX_MULTI和ALFP_MATRIX_INV)之外的所有浮点IP核,其中由于数学运算器件的误差累积,导致误差略有增加;

(6)浮点IP核不支持非正常的数字输入。如果输入为非正常值,则IP核会在执行任何操作之间将其强制为零并将该值看作零。

3.13.2 建立新的设计工程

本小节将介绍如何建立新的设计工程,其主要步骤如下所示。

(1)打开Quartus Prime Pro 2019.4(以下简称Quartus Prime)集成开发环境。

(2)在Quartus Prime集成开发环境主界面的主菜单下,选择File→New Project Wizard…,出现“New Project Wizard-Introduction”对话框。

(3)在“New Project Wizard-Introduction”对话框中,单击“Next”按钮,出现“New Project Wizard-Directory,Name,Top-Level Entity”对话框。

(4)在“New Project Wizard-Directory,Name,Top-Level Entity”对话框中,按如下设置参数。

① What is the working directory for this project?:f:\intel_dsp_example\example_3_41.

② what is the name of this project?:top。

(5)单击“Next”按钮出现“Quartus Prime”对话框。

(6 )在 “Quartus Prime”对话框中提示信息 “Directory “e:\intel_dsp_example\example_3_41”does not exist.Do you want to create it?”。

(7)单击“Yes”按钮,出现“New Project Wizard-Project Type”对话框。

(8)在“New Project Wizard-Project Type”对话框中,默认勾选“Empty project”前面的复选框。

(9)单击“Next”按钮,出现“New Project Wizard-Add Files”对话框。

(10 )单击 “Next”按钮,出现 “New Project Wizard-Family,Device&Board Settings”对话框。

(11 )在 “New Project Wizard-Family,Device&Board Settings”对话框中,选择FPGA器件的具体型号为 “10CX085YU484E6G”。

(12)单击“Next”按钮,出现“New Project Wizard-EDA Tool Settings”对话框。

(13)在“New Project Wizard-EDA Tool Settings”对话框中,按如下设置参数。

① Design Entity/Synthesis:Synplify;

② Simulation:ModelSim-Intel FPGA:Verilog HDL;

③ Board-Level:Signal Integrity:IBIS。

(14)单击“Next”按钮,出现“New Project Wizard-Summary”对话框。

(15)单击“Finish”按钮。

3.13.3 浮点IP核实例的生成

本小节将介绍如何生成一个浮点IP核的实例,其主要步骤如下所示。

(1)在Quartus Prime右侧“IP Catalog”窗口的搜索框中输入关键字“float”,在窗口下面则会给出与float相关的IP核列表。在Library→Basic Functions→Arithmetic下,找到并用鼠标双击“Float Point Functions Intel FPGA IP”,弹出“New IP Variant”对话框。

(2)在“New IP Variant”对话框文件名右侧的文本框中输入“float_math”。

(3)单击“Create”按钮,弹出“IP Parameter Editor Pro”界面,如图3.44所示。

图3.44 “IP Parameter Editor Pro”界面

(4)在“IP Parameter Editor Pro”界面中,按如下设置参数。

① Family:Arithmetic;

② Name:Multiply;

③ Format:Single。

(5)单击图3.44右下角的“Generate HDL…”按钮,弹出“Generation”界面,如图3.45所示。

图3.45 “Generation”界面

(6)在“Generation”界面中,按如下设置参数。

① Create HDL design files for synthesis:Verilog;

② 勾选“Create block symbol file(.bsf)”前面的复选框;

③ 勾选“Generate IP Core Documentation”前面的复选框;

④ Create simulation model:Verilog;

⑤ 其余按默认参数设置。

(7)单击“Generate”按钮,退出“Generation”界面,弹出“Save changes before refresh?”对话框。

(8)在“Save changes before refresh?”对话框中,提示信息“Save?Changes to unsaved systems will be lost on refresh”。

(9)单击“是(Y)”按钮,退出“Save changes before refresh?”对话框,弹出“Generate”界面。

(10)在“Generate”界面中,显示出了生成过程中的信息。

(11)生成过程结束后,弹出“Generate Completed”对话框。

(12)单击“Close”按钮,退出“Generate Completed”对话框。

(13)单击图3.44右上角的按钮×,退出“IP Parameter Editor Pro”界面。

3.13.4 例化IP核实例

本小节将介绍如何生成顶层Verilog HDL文件和在该文件中如何例化IP核实例,其主要步骤如下所示。

(1)在Quartus Prime主界面的主菜单下,选择File→New,弹出“New”对话框。

(2)在“New”对话框中的Design Files下面找到并选择Verilog HDL File。

(3)单击“OK”按钮,退出“New”对话框,弹出名字为“Verilog1.v”的空白设计窗口。

(4)在弹出的窗口中,输入如代码清单3-29所示的设计代码。

代码清单3-29 top.v文件

(5)按“Ctrl+S”组合键,将该文件保存为“top.v”。

(6 )单击 “Compilation Dashboard”标签。在该标签页中,单击 “Analysis&Synthesis”前面的 按钮,Quartus P rime 集成开发环境开始执行分析和综合过程,等待该过程的结束。

(7)在Quartus Prime左侧的“Tasks”窗口中,在“Analysis”标题下找到并用鼠标单击“Technology Map Viewer(Post-Mapping)”按钮,出现“Technology Map Viewer-Post-Mapping”界面。

(8)在“Technology Map Viewer-Post-Mapping”界面中,给出了映射后的网表结构,如图3.46所示。

思考与练习3-34 :双击图3.46中名字为“Inst_float_math”的元器件符号,查看其内部结构(提示:使用了FPGA内集成的DSP阵列,不再使用FPGA内的逻辑设计资源实现)。

图3.46 “Technology Map Viewer-Post-Mapping”界面

3.13.5 生成测试平台文件

本小节将介绍如何为设计生成测试平台文件,其主要步骤如下所示。

(1)在Quartus Prime集成开发环境主界面的主菜单下,选择File→New…,出现“New”对话框。

(2)在“New”对话框中的Design Files下面找到并选择Verilog HDL File。

(3)单击“OK”按钮,退出“New”对话框,出现名字为“Verilog2.v”的空白设计界面。

(4)在设计界面中,输入如代码清单3-30所示的设计代码。

代码清单3-30 test.v文件

(5)按“Ctrl+S”组合键,将该文件保存为“test.v”。

3.13.6 设计的仿真

本小节将介绍如何使用ModelSim仿真工具对设计进行仿真,其主要步骤如下所示。

(1)在Windows 10操作系统的左下角选择开始→Intel FPGA 19.4.0.64 Pro Edition→ModelSim-Intel FPGA Starter Edition 2019.2(Quartus Prime Pro 19.4)。

(2)单击鼠标右键,出现浮动菜单。在浮动菜单内,选择更多→以管理员身份运行,弹出“用户账户控制”对话框。

(3)在“用户账户控制”对话框中,提示信息“你要允许此应用对你的设备进行更改吗?”

(4)单击“是”按钮,启动ModelSim-INTEL FPGA STARTER EDITION 2019.2(以下简称ModelSim)仿真工具。

(5)在ModelSim主界面的主菜单下,选择File→Change Directory…,出现“选择文件夹”对话框。

(6 )在 “选择文件夹”对话框中,将路径定位到e:\intel_dsp_example\example_3_41。

(7)单击“选择文件夹”按钮。

(8)在ModelSim主界面的主菜单下,选择Compile→Compile…,出现“Compile Source Files”对话框。

(9)在“Compile Source Files”对话框中,同时选择test.v文件和top.v文件。

(10)单击“Compile”按钮,弹出“Create Library”对话框。

(11)在“Create Library”对话框中提示信息“The library ‘work ’does not exist.Do you want to create this library?”

(12)单击“Yes”按钮。

(13)在“Compile Source Files”对话框中,展开子目录float_math。在展开项中,展开sim子目录。在展开项中,找到并选择float_math.v文件。

(14)单击“Compile”按钮。

(15)在“Compile Source Files”对话框中,退出sim子目录,进入上一级目录float_math。在该目录下,展开altera_fp_functions_191子目录。在展开项中,展开sim子目录。在展开项中,同时选择dspba_library.vhd、dspba_library_package.vhd和float_math_altera_fp_functions_191_h7gb7uy.vhd文件。

(16)单击“Compile”按钮。

(17)单击“Compile Source Files”对话框中的“Done”按钮,退出该对话框。

(18)在Quartus Prime主界面的主菜单下,选择Simulate→Start Simulation,弹出“Start Simulation”对话框。

(19)在“Start Simulation”对话框中,单击“Design”标签。

(20)在“Design”标签页中,找到并展开work文件夹。在该文件夹中,找到并选择test.v文件。

(21)单击“OK”按钮,退出“Start Simulation”对话框。同时,自动弹出“Objects”窗口和“Wave-Default”窗口。

(22)在“Objects”窗口中,同时选中信号clk、rst、a、b和res信号,单击鼠标右键,出现浮动菜单。在浮动菜单内,选择Add Wave,这些信号将被自动添加到“Wave-Default”窗口中。

(23)在“Wave-Default”窗口中,同时选中信号/test/a、/test/b和/test/res,单击鼠标右键,出现浮动菜单。在浮动菜单内,选择Radix→float32,将这些信号的显示方式修改成单精度浮点格式。

(24)在ModelSim主界面底部的“Transcript”窗口内,在“VSIM 16>”提示符后面输入命令“run 100ns”,该命令表示仿真的时间为100ns。

(25)通过单击“Zoom Out”按钮 几次,将仿真波形调整到“Wave”窗口内,其仿真结果如图3.47所示。

(26)关闭ModelSim仿真工具。

思考与练习3-35 :观察图3.47给出的仿真结果,评估仿真的结果是否正确?

思考与练习3-36 :观察图3.47给出的仿真结果,说明从数据输入到浮点结果输出的时间延迟。

图3.47 调用浮点IP核后的仿真波形界面 WKt4y+L5d/VGRjSAhaXKvq0e+wiPmkv+yJBHUNtseUULxF2G3HUYZlksfWc9rMCl

点击中间区域
呼出菜单
上一章
目录
下一章
×