我们可以在一个总块内使用三元运算符吗? MOD(%)运算符是否可以合成?

时间:2016-10-27 06:25:48

标签: verilog hdl synthesis vivado

我试图在always块中使用三元运算符,它是可合成的。并且MODIL(%)运算符可以在verilog中合成吗?因为当我模拟代码时,结果看起来是正确的,当在硬件中实现时,它的表现很奇怪。我已经研究了除非分频器是2的幂,否则该除法运算符也不可合成的位置。这是真的吗? 我正在使用vivado工具来合成我的代码。

1 个答案:

答案 0 :(得分:0)

据我所知,三元运算符是可合成的,因为它可以理论上映射到一个简单的2 * 1多路复用器。

我不确定,但mod(%)运算符不可合成。乘法,除法,模数,这些都是编程术语,但对于实际硬件,您实际上需要一个硬件,它可以进行乘法或除法或模运算。因此,工具无法在代码中使用%来制作硬件。

可合成verilog构造的一个参考 - http://asic-soc.blogspot.in/2013/06/synthesizable-and-non-synthesizable.html