Verilog是描述硬件电路的,它是建立在硬件电路的基础上的。有些语法结构是不能与实际硬件电路对应起来的,也就是说我们在把一个语言描述的程序映射成实际硬件电路中的结构时是不能实现的。
verilog中可综合语句:
input、output、parameter、reg、wire、always、assign、d、case、posedge、negedge、or、and、default、if、function、generate、integer、`define,while、repeat 、for (while、repeat循环可综合时,要具有明确的循环表达式和循环条件,for可综合时也要有具体的循环范围)
不可综合语句:
initial、fork.. join、wait、time、real、display、forever。
保证Verilog HDL赋值语句的可综合性,在建模时应注意以下要点:
如:always @(posedge clk or negedge clk) d,这个always块不可综合。
关于除法运算的可综合性参考以下小米数字IC笔试题:
12、哪些Verilog的写法是不能综合的()
A、输入为变量的除法
B、循环边界未指定的for循环
C、含有时序电路的function函数
D、输入为变量的乘法
解析:ABC。除法不可综合。
除法器在FPGA里怎么实现呢?当然不是让用“/”和“%”实现。在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。即使可以综合,也需要比较多的资源。对于这种情况,一般使用相应的算法来实现除法,分为两类,基于减法操作和基于乘法操作的算法。
本文发布于:2024-01-31 23:11:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170671387532073.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |