当前位置:   article > 正文

FPGA系统性学习笔记连载_Day6 FPGA三种建模方式区别及Verilog语法基础篇

fpga三种建模方式

一、FPGA的3种建模方式

A、数据流建模(assign)

数字电路中,信号经过组合逻辑时会类似于数据流动,即信号从输入流向输出,并不会在其中存储。当输入变化时,总会在一定时间以后体现在输出端。同样,我们可以模拟数字电路的这一特性,对其进行建模,这种建模方式通常被称为数据流建模。

1.1、是使用连续赋值语句(assign)对电路的逻辑功能进行描述,该方式特别便于对组合逻辑电路建模

1.2、连续驱动,连续赋值语句是连续驱动的,也就是说只要输入发生变化,都会导致该语句的重新计算。

1.3、只有线网型的变量才能在assign语句中被赋值

1.4、因为assign语句中被赋值的变量,在仿真器中不会存储其值,所以该变量必须是线网(Nets)类型,不能是寄存器(reg)类型

1.5、线网类型的变量,可以被多重驱动,也就是说可以在多个assign语句中驱动同一个net

1.6、reg型变量,不能被不同的行为进程(eg:always块)驱动

1.7、建议使用assign对组合逻辑建模,这是因为assign语句的连续驱动特点与组合逻辑的行为非常相似,而且在assign语句中加延时可以非常精确地模拟组合逻辑的惯性延时。

1.8、assign语句与行为语句块(always和initial)、其它连续赋值语句、门级模型之间是并行的。

一个连续赋值语句是一个独立的进程,进程之间是并发的,同时也是交织的。

B、行为级建模(initial、always)

行为方式的建模是指采用对信号行为级的描述(不是结构级的描述)的方法来建模。

在表示方面,类似数据流的建模方式,但一般是把用initial 块语句或always 块语句描述的归为行为建模方式。

行为建模方式通常需要借助一些行为级的运算符如加法运算符(+),减法运算符(-)等。

需要先建立以下概念:

  • 2.1、只有寄存器(reg)类型的信号才可以在always和initial 语句中进行赋值,类型定义通过reg语句实现。
  • 2.2、always 语句是一直重复执行,由敏感表(always 语句括号内的变量)中的变量触发。
  • 2.3、always 语句从0 时刻开始。
  • 2.4、在begin 和end 之间的语句是顺序执行,属于串行语句。<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/614001
推荐阅读
相关标签
  

闽ICP备14008679号