微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog直接用除号“/”的讨论

Verilog直接用除号“/”的讨论

时间:10-02 整理:3721RD 点击:
目前设计里边需要用到除法,直接用除号“/”也能综合出来(我认为也能得到正确的值,因为以前读过的一个DS18b20温度传感器的程序都是用除号得到温度的十位个位十分位的),我的问题是:
1.那么用除号“/”就意味着在一个时钟周期内可以得到商吗?

2.用除号“/”和用除法模块lpm_divider是一样的吗?因为我看到两者最后都是调用了扩展名为tdf的LPM_divIDE文件。
3.如果不考虑面积,是否可以直接用除号“/”而不用自己写一个数个周期才能出结果的除法算法。
大神留步!

这里的除号只是语法中的,无法生成实际电路。


小编你好,可以详细解释下吗?看过网上AD的代码也是用了除号的,若不能得到实际电路,怎么电压测量感觉是正确的呢?



    因为FPGA除非你用到dsp的核,否则你用逻辑生成除法运算是非常困难的。你那个除法符号仅仅可能只是用于仿真语言编写或者参数设置需要,这只是我个人经验,不一定全对,你可以去验证一下是不是这样。或者你把你说的A/D的代码编译布线看看是一个什么样的电路,用到了哪些逻辑资源,有没有用到DSP

刚刚使用quartus13.1上测试了基于cyclone5的lpm_divide IP,没有使用 DSP,那么和“/”是一样的。
A1
一个周期内得到结果,需要看时钟频率、和输入数据的宽度,对于温度采集这类慢速ADC来说,估计可以在单周期内得到结果,但是不使用LUT后级的寄存器,也是浪费掉了。使用多级流水会提升速度的。
A2
应该一样的,“/”没有试了。LZ可以试试
A3
应该可以

不能得到除法

不能哦,亲

好东西


1.是的~


2.3.

我以前用quartus 直接写”/” 合成时会直接去呼叫一个divider模块,

所以答案也是
肯定的,这部份与ASIC一样,要看library有

没有提供”/”语法的模块,所以直接写”/”貌似兼容性不太好,有错

还请各位先进指正~


1.不是一个周期,看你综合工具最后除法器的实现。你把它当组合逻辑延迟就行,位数越大,delay越大。而且面积会非常大,一般aisc不会这么做的,不考虑面积,timing也不紧,可以这么用。
2 FPGA直接用/就行了,工具会调用合理的lpm,除非你有更好的除法器实现方法。
3跟2一样,自己写数个周期除法器,fmax可能会提高。总时间不好说,看你的算法了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top