【问题标题】:How the levels of abstraction of modelling justified in vhdl/verilog如何在 vhdl/verilog 中证明建模的抽象级别
【发布时间】:2016-06-08 14:08:26
【问题描述】:

我是 VHDL 的初学者,在一些书籍中他们说 行为模型具有最高抽象度数据流模型具有中级抽象度结构模型具有较低的抽象度层次抽象

他们是如何被证明的? 以及在哪些情况下应该使用哪种建模?

我假设何时使用以下顺序模型的行为:

         if(all_doors_locked) then 
         ignition_start = 1;

但是其他两个模型是并发的,我找不到它们之间的任何区别,然后

它们的抽象级别如何变化?什么时候可以像上面的例子一样使用它们?

【问题讨论】:

    标签: vhdl verilog system-verilog


    【解决方案1】:

    行为模型:

    always @ (*)
    begin
      if(all_doors_locked) 
         ignition_start = 1'b1;
      else
         ignition_start = 1'b0;
    end
    

    数据流模型:

    always @ (*)
    begin
         ignition_start = all_doors_locked;
    end
    

    结构模型:

    buf  U1(ignition_start,all_doors_locked);
    

    查看“行为”设计,可以将其归类为一种设计方法,其中模块在高级抽象中建模,其中设计者定义了所需的行为模块和综合工具将该行为分解为 RTL 或结构模型。

    较少抽象的是“RTL”或寄存器传输逻辑建模。这就是许多从业者所说的“数据流”的开始。我们实际编写硬件的地方,

    assign Y = A & B; // AND operation     
    

    最不抽象的是“结构”建模,其中设计几乎完全被描述为具有连接寄存器和电线的组件实例化。

    【讨论】:

    • 感谢Prakash ji 的回复...数据流和结构模型本质上都是并发的,它们之间没有太大区别...那么为什么它们的抽象级别会有所不同??是他们的他们之间有什么区别??
    • 您将看到大型复杂 HDL 代码的差异。假设你已经为 10 位计数器编写了代码,用 data-flow 编写太容易了,但是当我们谈论 structural 时,它需要 flop to flop 连接。并且您将实现抽象级别。
    • 谢谢 ji,现在我可以实现抽象级别了。如果行为模型很容易用 LOGIC 编码,那么在什么情况下数据流和结构模型会有帮助..如果你不介意你能举个例子说明在什么情况下使用数据流和结构模型而不是行为模型
    • 找到你自己的家伙!,仍然需要更多的许可,在数据流建模的情况下,你知道合成器会推断出什么硬件(正如你实际写的那样),但在行为的情况下,它会推断出您不知道或不知道的硬件,但您需要通过查看 HDL 的 RTL 视图来检查。
    【解决方案2】:

    结构门级是每个数字电路最终应实现的目标。那是每个数字电路的硬件实现。但是,在大型设计中,人类很难获取一个非常大的网表并掌握它并了解它在做什么。

    行为模型是我们人类很容易理解的,因为许多细节都被抽象掉了。但是,并不总是可以轻松地将其转换为门。

    数据流(或 RTL)处于中间位置:理解它仍然不是太难,并且可以以自动化和系统的方式转换为门。这就是为什么许多设计师在现实世界的设计中使用这种抽象级别的原因。

    软件中与此类似的一个类比是软件应用程序的高级描述(行为模型)。它是源代码,例如C++,类似于数据流级,它编译的机器码类似于结构门级网表。

    【讨论】:

    • 谢谢老兄..我现在可以关联到比我以前的假设更好的某个水平...
    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    相关资源
    最近更新 更多