assign 和always语句描述组合逻辑的利弊
本帖最后由 fpgaw 于 2010-7-3 05:48 编辑我要描述一个简单的二选一电路,用了这个语句:
assign result = ( if_a == 1'b1 ) ? data_a : data_b ;
但是我的同事说最好不要这样描述,而要改为用always块描述
always @ ( if_a or data_a or data_b )
begin
if ( if_a == 1'b1 ) begin
result = data_a ;
end
else begin
result = data_b ;
end
end
他的理由是assign语句的执行与仿真器有关,真的是这样的吗?
我目前了解到的情况是:RTL描述中使用基本的构造模块和使用连续assign语句各有优缺点。连续assign语句是一种非常简洁的表示功能的方式,通常能生出性能很好的组合逻辑电路。然而,最终的逻辑结构并不一定是对称的。调用基本构造模块可以产生对称的设计,并且逻辑综合工具能够更有效地优化小模块。然而,调用构造模块是一种不太简洁的设计描述方式;它制约了针对设计工艺的重定向,并且通常会降低仿真器性能。
请问各位有什么看法?欢迎大家发表意见! assign 和always语句描述组合逻辑的利弊 assign 和always语句描述组合逻辑的利弊
页:
[1]