verilog hdl编程if else分支过多行吗?是资源代价怎么算呢?40输入的或门,是一个或门呢还是好几个或门啊?

2024-12-25 12:14:58
推荐回答(2个)
回答1:

分支过多的话最好使用case,简单的来说就是用case,下面的所有条件都是并列判断,或者说认为出现的概率相同。如果用if else的话写在前面的则会认为相对来说是一种常态。如果你能判断出现的概率,那自然把概率大的放在前面用if-else写,如果判断不了或者概率相同就用case吧。
如果说你的输入是一堆东西的话,那看你要求的实时性有多高,最好时分判断,40个输入你就想成是40个输入的加法,多费劲啊

回答2:

if else相比case的优势是有优先级
理论上讲,你的if else可以嵌套无数级别
但是制约你级数的因素有布线延迟和资源数量,一般FPGA资源是很多的
也就是你主要要解决延迟的问题
在时序电路里,一个时钟周期内能完成的if else分支数量就是你的极限
提高这个极限的办法最简单的就是降低主频