Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析

加入定制的乘法IP核,必须在sources右键,用Add Directories加入才完整
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第1张图片
加入文件夹后如下图:
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第2张图片
测试代码与主程序模块连接端口初学者容易出现错误
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第3张图片
输入端口:从模块内部来讲,输入端口必须为线网数据类型,从模块外部来看,输入端口可以连接到线网或者reg数据类型的变量。
输出端口:从模块内部来讲,输出端口可以是线网或者reg数据类型,从模块外部来看,输出必须连接到线网类型的变量,而不能连接到reg类型的变量。

(125条消息) [初学Verilog笔记]模块输入输出_qq_34670678的博客-CSDN博客 https://blog.csdn.net/qq_34670678/article/details/106432116
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第4张图片
我的错误是某一个英文的“:”不小心写成了中文的“:”

(125条消息) Modelsim中出现Syntax error, unexpected non-printable character错误_天津大学–神经网络方向–在读研究生的博客-CSDN博客 https://blog.csdn.net/weixin_43257368/article/details/90717109

观察下面的仿真的顶层模块与测试模块是否正确
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第5张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第6张图片

以下部分参考赛灵思IP除法器官方文档《pg151-div-gen》

除法器 IP LutMult

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第7张图片

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第8张图片

鼠标左键是Run

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第9张图片

鼠标右键是Reset
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第10张图片

latency = 8,实际为7

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第11张图片

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第12张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第13张图片

latency = 1

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第14张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第15张图片
从功能仿真上看到正确输出
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第16张图片

综合后仿真也基本一样
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第17张图片

选latency=4

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第18张图片

右键所选的div_gen_900_synth_1, 选sythesis Run Properties, 再选 report
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第19张图片
选latency=4 得出下面的资源利用情况
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第20张图片
或者
report_utilization -hierarchical
report_utilization -name div_gen_900_1

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第21张图片

除法器 IP Radix2

latency = 1

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第22张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第23张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第24张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第25张图片

latency = 8

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第26张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第27张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第28张图片

根据实际情况修改位数:

div_gen_900除法器 10位除12位
mult_gen_32_12乘法器 32位乘12位
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第29张图片
仿真验证
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第30张图片
现在进一步将程序贴近实际,
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第31张图片
div_gen_10_12 是10位数除12位数
mult_gen_5 是5倍运算
mult_gen_20 是20倍运算
mult_gen_25 是25倍运算
mult_gen_32_8 是32位数乘8位数
将div_gen_10_12的除数作为乘数代入 mult_gen_32_8

仿真图
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第32张图片
结果正确,但除法耗时太长,调成1
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第33张图片

Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第34张图片
assign相当于一条连线,将表达式右边的电路直接通过wire(线)连接到左边,左边信号必须是wire型。
(125条消息) Verilog赋值语句_FireBird的专栏-CSDN博客_verilog赋值 https://blog.csdn.net/firstlai/article/details/52712042

寄存器的赋值方式

reg [9:0] set_div;
always @ (negedge reset or posedge clkout) 
begin
	      set_div <= 10'd900;

两点: Array信号必须标明维数,set_div值必须在always块中赋值,不能直接用“=”在always语句块外赋值。

顶层模块内部用reg赋值后,功能仿真正确
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第35张图片
可以看到除法器似乎立即生效,输入数据分别在下降沿和上升沿更新,均在上升沿后间半个周期左右除法完成。
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第36张图片
Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析_第37张图片

风险一、

这里把除法器输入有效信号始终维持为高,并未细化处理,可能存在风险。

你可能感兴趣的:(FPGA,嵌入式,Xilinx)