我试图在always块中使用三元运算符,它是可合成的。并且MODIL(%)运算符可以在verilog中合成吗?因为当我模拟代码时,结果看起来是正确的,当在硬件中实现时,它的表现很奇怪。我已经研究了除非分频器是2的幂,否则该除法运算符也不可合成的位置。这是真的吗? 我正在使用vivado工具来合成我的代码。
答案 0 :(得分:0)
据我所知,三元运算符是可合成的,因为它可以理论上映射到一个简单的2 * 1多路复用器。
我不确定,但mod(%)运算符不可合成。乘法,除法,模数,这些都是编程术语,但对于实际硬件,您实际上需要一个硬件,它可以进行乘法或除法或模运算。因此,工具无法在代码中使用%来制作硬件。
可合成verilog构造的一个参考 - http://asic-soc.blogspot.in/2013/06/synthesizable-and-non-synthesizable.html