在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 1178|回复: 9

[讨论] IC设计与FPGA设计中乘法器的疑问

[复制链接]
发表于 2024-8-4 14:35:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
一直很好奇大家讲在verilog语言中使用 * 会耗费很多资源于是搜集了一些资料
首先:在FPGA中,如果直接使用*号,在综合的时候,vivado会自动判断是使用LUT资源还是DSP资源来实现。
这跟位宽相关,小位宽的时候vivado会使用LUT资源来实现,大位宽时则会调用DSP。
还跟资源相关,如果FPGA板子LUT或者DSP资源多,可以直接使用指令来约束综合。
        例:(* use_dsp48="yes" *)指定使用DSP
另外在IC设计中,因为很多情况下可能不会集成DSP上去,因此应该直接使用*号还是使用自己写的乘法器呢。一般情况下,还是直接使用*号,交给DC自己取判断来综合出乘法器电路,其会调用DesignWare中的乘法器IP。也可以写约束来具体选择哪种乘法器。
        大概是这个样子,个人浅薄的认知,有错误还请指正。

发表于 2024-8-4 16:59:50 | 显示全部楼层
直接写*就行了,设置好时序约束让DC自己去优化
发表于 2024-8-4 21:32:23 | 显示全部楼层
如果你要自己定制乘法器内部的电路结构,可以自己写RTL甚至全定制自己画,如果DW的可以满足,就直接*。
发表于 2025-3-21 17:06:15 | 显示全部楼层


   
liuguangxi 发表于 2024-8-4 16:59
直接写*就行了,设置好时序约束让DC自己去优化


综合出来的是一个组合电路??如果我要写256bit的乘法器,要跑1GHz怎么办呢??
发表于 2025-3-21 18:28:38 | 显示全部楼层


   
scutlee 发表于 2025-3-21 17:06
综合出来的是一个组合电路??如果我要写256bit的乘法器,要跑1GHz怎么办呢??
...


在乘法运算后面用寄存器打几拍,DC当中针对这个子模块设置寄存器重定时功能
发表于 2025-3-22 21:14:41 | 显示全部楼层
打空拍吗
发表于 2025-3-22 21:32:46 | 显示全部楼层


   
liuguangxi 发表于 2025-3-21 18:28
在乘法运算后面用寄存器打几拍,DC当中针对这个子模块设置寄存器重定时功能
...


要输入什么命令


                               
登录/注册后可看大图

发表于 2025-3-23 17:55:13 | 显示全部楼层


是的,直接打拍
发表于 2025-3-24 10:21:46 | 显示全部楼层


   
liuguangxi 发表于 2025-3-23 17:55
是的,直接打拍


那综合应该加哪一条指令??时序约束有什么特别的约束??
发表于 2025-3-24 12:27:18 | 显示全部楼层


   
scutlee 发表于 2025-3-24 10:21
那综合应该加哪一条指令??时序约束有什么特别的约束??



compile_ultra命令前面加上
set_optimize_registers [get_designs designA]

假设designA是包含需要寄存器重定时的子模块
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-29 09:00 , Processed in 0.058704 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表