简体   繁体   English

在vhdl / verilog中如何合理化建模的抽象级别

[英]How the levels of abstraction of modelling justified in vhdl/verilog

I'm a beginner in VHDL and in some books they say behavioural model has highest abstraction and dataflow model has middle level abstraction and structural model has low level abstraction . 我是VHDL的初学者,在一些书中他们说行为模型具有最高的抽象数据流模型具有中层的抽象,结构模型具有低层的抽象

How they are justified? 他们是如何辩解的? And on which situations which modelling should be used? 在哪些情况下应该使用哪种建模?

I assume when to use behavioural which is a sequential model as follows: 我假设何时使用行为模型,如下所示:

         if(all_doors_locked) then 
         ignition_start = 1;

But the other two models being concurrent,I couldn't able to find any difference between them,then 但是其他两个模型是并发的,我找不到它们之间的任何区别,然后

how their abstraction level is varied? 它们的抽象级别如何变化? And when they can be used like in the example above? 何时可以像上面的示例一样使用它们?

Behavioural Model: 行为模型:

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

Data-flow Model: 数据流模型:

always @ (*)
begin
     ignition_start = all_doors_locked;
end

Structural Model: 结构模型:

buf  U1(ignition_start,all_doors_locked);

Looking at " Behavioural " design, may classify it as a design approach where modules are modeled at a high level of abstraction where the designer defines the desired behaviour of the module and the synthesis tools decompose that behaviour to either RTL or Structural models. 查看“ 行为 ”设计,可以将其归类为一种设计方法,其中以较高的抽象级别对模块进行建模,其中设计人员定义模块的所需行为,而综合工具将该行为分解为RTL或结构模型。

Less abstract is "RTL" or Register Transfer Logic modeling. 不太抽象的是“ RTL”或寄存器传输逻辑建模。 This is where many practitioners say that " data-flow " begins. 这是许多从业人员说“ 数据流 ”开始的地方。 Where we actually write Hardware, 在我们实际编写硬件的地方,

assign Y = A & B; // AND operation     

Least abstract is " Structural " modeling where the design is stated almost exclusively as component instantiations with connecting registers and wires. 最少的抽象是“ 结构 ”建模,其中设计几乎完全用带有连接寄存器和导线的组件实例表示。

Structural gate level is what every digital circuit should be finally implemented to. 结构门级是每个数字电路最终应实现的功能。 That is the hardware implementation of every digital circuit. 那就是每个数字电路的硬件实现。 But, in a large design, it is really hard for a human to take a very large netlist and get a grasp on it and understand what it is doing. 但是,在大型设计中,对于一个人来说,要拿一个非常大的网表并掌握它并了解它在做什么是非常困难的。

Behavioral model is what we humans, easily understand because many details are abstracted away. 行为模型是我们人类的模型,很容易理解,因为许多细节已被抽象掉。 However, it is not always possible to convert it to gates easily. 但是,并非总是可能轻松地将其转换为门。

Dataflow (or RTL) is somewhere int he middle: It is still not too hard to understand it, and it can be converted in an automated and systematic way into gates. 数据流(或RTL)位于中间位置:仍然很难理解它,并且可以以自动化和系统的方式将其转换为门。 That is why many designers use this level of abstraction for real world designs. 这就是为什么许多设计师将这种抽象水平用于现实世界的设计。

One analogy to this in software is the high-level description of a software application (Behavioral model). 在软件中对此进行类比是对软件应用程序(行为模型)的高级描述。 It's source code, eg C++, resembles dataflow level, and it compiled machine code resembles the structural gate level netlist. 它的源代码(例如C ++)类似于数据流级别,并且其编译的机器代码类似于结构性门级别的网表。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM