HANG 发表于 2010-6-26 01:51:37

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语句是一种非常简洁的表示功能的方式,通常能生出性能很好的组合逻辑电路。然而,最终的逻辑结构并不一定是对称的。调用基本构造模块可以产生对称的设计,并且逻辑综合工具能够更有效地优化小模块。然而,调用构造模块是一种不太简洁的设计描述方式;它制约了针对设计工艺的重定向,并且通常会降低仿真器性能。

请问各位有什么看法?欢迎大家发表意见!

大鹏 发表于 2022-2-14 14:50:30

assign 和always语句描述组合逻辑的利弊

zxopenhl 发表于 2022-2-22 09:45:03

assign 和always语句描述组合逻辑的利弊
页: [1]
查看完整版本: assign 和always语句描述组合逻辑的利弊