1. 设计任务
调用IP 核资源库中自带的乘法器IP 核,采用Vivado 的BLOCK/Diagram 图形设计方法,设计实现一个8 位二进制数字平方运算功能电路,并仿真观察设计结果。
2. 设计过程
(1)新建工程。
打开Vivado 软件,新建一个名为“square_multiplier_ip”的工程,如图4.4 所示,单击“Next”,在器件型号选择界面选中“xc7z020clg484-1”的FPGA,完成工程建立。
图4.4 设置工程名和路径
(2)创建Block 设计文件。
在Vivado 左侧的“Flow Navigator”项目设计流程管理窗口,如图4.5 所示,执行【IP INTEGRATOR】→【Create Block Design】选项,打开创建图形设计文件对话框。
图4.5 创建Block 设计文件
在图4.6 中设置图形设计文件的名字,可按标识符规则任取,此处设置为“square_multiplier_ip”,然后单击“OK”,打开如图4.7 所示的“Diagram”图形编辑器窗口。
图4.6 设置文件名
图4.7 Diagram 图形编辑器窗口
(3)添加乘法器IP 核。
在图4.7 中,单击Diagram 图形编辑窗口工具栏中按钮,打开IP 核资源库管理器,查找添加设计所需IP 核,如图4.8 所示。
图4.8 查找IP 核对话框
在图4.8 的“Search”查询对话框中,输入IP 核名字或部分关键字,即可快速查找想要的IP 核。此处可以输入乘法器部分关键字“mult”,则名为“Multiplier”乘法器IP核自动显示在下面列表中,如图4.9 所示,此操作可快速查找IP 核。
在图4.9 中双击“Multiplier”乘法器IP 核,完成调用,此时在图4.7 的Diagram 图形编辑器窗口中会自动添加一个如图4.10 所示的乘法器IP 核元件符号。
图4.9 查找Multiplier 乘法器IP 核
图4.10 乘法器IP 核元件符号
(4)参数设置。
通常系统提供的IP 核往往具有参数可设置功能,允许设计者根据实际需要,定制参数、选配端口等,而且所有设置都是图形化(GUI)界面操作,简单方便。
双击刚刚添加的乘法器IP 核元件符号,立刻弹出“Re-customize IP”(客户化重置IP)界面,对IP 进行参数设置,如图4.11 所示。
图4.11 乘法器IP 参数设置
在此设计中,需要将乘法器的输入端“A”“B”的“Data Type”设置为“Unsigned”;将“Width”数据位宽设置为“8”位,其他保持默认即可。设置方法是在图4.11 中单击黑色框处,将“AUTO”切换为“MANUAL”状态,允许修改后面对应参数,修改结果如图4.12 所示,然后单击“OK”。
图4.12 修改乘法器输入位宽为8 位
通过对比图4.11 和图4.12,明显看出当输入端口的位宽参数发生更改后,元件符号端口位宽参数也跟着发生改变,如图4.13 所示。这充分体现IP 的参数可设置功能。
图4.13 端口位宽更改对比
(5)绘制原理图。
当设置完成所有IP 核参数后,利用Diagram 图形编辑器提供的相关工具,进行原理图绘制。
因为此设计项目只调用了一个乘法器IP 核,没有其他元件对象,故原理图绘制较为简单。CLK 应外接一个输入端口连接时钟信号;乘数A[7:0]和B[7:0]两个端口应该连接在一起,外接一个输入端,表示两个相同数字相乘,即实现了计算平方功能;P[15:0]是计算结果输出,应外接一个输出端口。
图形设计编辑窗口界面较为简单,工具栏按钮(见图4.14)包含了基本所有操作。其中有图形的缩放控制、添加新的IP 核、添加输入输出端口、布局自动调整、原理图有效性检测等常用功能。
图4.14 Diagram 图形编辑工具
① 修改元件名字。
在图形编辑中,选中元件,对应在左侧“Block Properties”窗口可以修改相关属性,在“Name”参数处,可以修改调用IP 核的实例名字,此处修改为“Square”(平方),此时右边Diagram 图形编辑窗口中的元件名显示结果对应改变为“Square”(见图4.15),此方法还适用于对输入输出端口名进行更改。
② 添加输入输出端口。
用鼠标选中元件对应的端口,高亮显示,如图4.16 中的P[15:0]端口,然后在工具栏上单击添加端口(Make External)按钮,软件会自动连接OUTPUT 输出端口,结果如图4.17 所示。如法炮制,为CLK 和A[7:0]两个端口添加输入端。
(www.xing528.com)
图4.15 更改元件名字
图4.16 添加端口
图4.17 添加端口结果显示
③ 绘制导线。
在Diagram 窗口中,将鼠标移动至元件端口上,光标会由箭头形状自动变化为(铅笔状),此时表示处于连线状态,可以按住鼠标左键移动到目标端口或导线处,松开鼠标左键即可完成导线绘制。此处,需要将B[7:0]端口连接到A[7:0]端口上,如图4.18 所示。
依次选中端口名“A_0”和“P_0”,采用更改名字的方法(见图4.15),将端口名分别更改为“A”和“P”,完成原理绘制结果如图4.19 所示,单击保存。
图4.18 将B 连接到A 端口上
图4.19 原理图绘制结果
(6)有效性检测。
保存完设计文件后,需要对设计的正确性进行检测,单击工具栏按钮,执行检测。如果绘制原理图有错误,则软件会提示错误信息,如果没有错误,则表示设计正确,可以进行下一步操作。
(7)生成设计输出文件。
在Vivado 设计界面的BLOCK DESIGN 窗口中,右键单击【Sources】→【Design Sources】→“square_multiplier_ip”文件,弹出浮动菜单,执行“Generate Output Products…”(见图4.20),启动生成输出文件命令,弹出如图4.21 所示的对话框。
图4.20 启动“Generate Output Products”命令
图4.21 设置参数执行生成命令
在图4.21 的“Generate Output Products”对话框中,设置综合类型选项,保持默认即可,然后单击“Generate”。在弹出的生成结果信息提示框中,单击“OK”。
(8)生成“*_wrapper.v”顶层文件。
再次右键单击【Sources】→【Design Sources】→“square_multiplier_ip”文件,弹出浮动菜单,执行“Create HDL Wrapper…”选项,如图4.22 所示。
图4.22 启动“Create HDL Wrapper…”命令
在图4.23 所示的“Create HDL Wrapper”对话框中,选择“Let Vivado manage wrapper and auto-update”,保持默认设置,单击“OK”。
图4.23 “Create HDL Wrapper”对话框
此时,在如图 4.24 所示的工程设计源文件目录中,生成了以工程名为前缀,以“wrapper”为后缀的Verilog HDL 文件——“square_multiplier_ip_wrapper.v”,见【代码4.1】。这个HDL 代码只说明图形设计的端口信息,而不描述具体实现信息。这个只提供端口信息的HDL 文件称为Wrapper。Wrapper 的名字通常需要与Block Design 设计文件名字相同。
图4.24 工程设计源文件窗口
从代码中可以看出,实际上此代码是对刚刚绘制的原理图设计文件的调用描述,即采用了例化语句,例化对象为图形设计文件。
【代码4.1】square_multiplier_ip_wrapper.v
3. 行为仿真
按Vivado 的仿真设计操作流程,创建如图4.25 所示的仿真测试文件,对刚刚生成的“square_multiplier_ip_wrapper.v”进行测试,编写Testbench 激励代码,参考【代码4.2】。
图4.25 新建仿真测试文件
【代码4.2】平方运算电路的仿真测试代码
保存仿真测试文件,在综合前,可以实现HDL 电路行为仿真,操作如图4.26 所示,单击工程管理器界面的【SIMULATION】→【Run Simulation】→【Run Behavioral Simultaion】,启动行为仿真,仿真结果如图4.27 所示。
图4.26 启动行为仿真
从图4.27 的仿真波形可以判断,此IP 核的应用设计结果是正确的,输入端口A 从1~6 变化,输出端口P 输出为A 对应输入数值的平方。至此,乘法器IP 核的简单应用圆满完成,关于IP 核的图形设计调用方法也讲解完毕。
图4.27 平方运算仿真波形
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。