verilog中行为与数据流的区别

use*_*380 3 verilog

我已经搜索过了解行为和数据流代码之间的区别verilog.最后我找不到好的例子,无处不在告诉他们做的事情.例如 :

"它非常简单.名称本身就解释了它们是什么.数据流是描述程序的一种方式.就像描述特定设计的逻辑功能一样.另一方面,行为模型描述了系统的行为.它在特定情况下如何表现给出了什么输入?"

这里写的是非常简单的例子,但我需要更多的例子.

Ahm*_*lah 6

Verilog中的数据流建模允许根据数字系统的功能设计数字系统.数据流建模使用布尔方程,并使用许多操作符可以使用acton输入来生成输出操作符,如+ - &&&!〜|| | << >> {}所以,如果我想在数据流建模中描述一个2到4解码器,我会是这样的

module decoder2to4 ( e , a, b, do, dl, d2, d3);
input e, a, b;
output do, dl, d2, d3;
assign dO = ( e & ~a & ~b); //00
assign dl = (e & ~a & b);   //01
assign d2 = (e & a & ~b);   //10
assign d3 = ( e & a & b);   //11
endmodu1e
Run Code Online (Sandbox Code Playgroud)

另一方面,Verilog中的Behavioral建模用于以算法的方式描述设计的功能,所以如果我想在数据流建模中描述2到4个解码器,我会像这样

module decoder2to4 (e, i, d);
output [3:0] d;
input [l:0]i;
input e;
reg [3:0] d;
    always @ (i or e) begin
            if (e==l) begin
                case (i)
                       0: d = 4'b 0001;
                       1: d = 4'b 0010;
                       2: d = 4'b 0100;
                       3: d = 4'b 1000;
                      default d = 4'b xxxx;
               endcase
            end
            else
               d = 4'b0000;
    end
endmodule
Run Code Online (Sandbox Code Playgroud)

  • 行为建模不是使用案例块,而是描述系统的行为,而不考虑综合时形成的实际电路 (2认同)