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

本文详细介绍了FPGA的三种建模方式:数据流建模(assign)、行为级建模(initial、always)以及结构化描述。数据流建模适用于组合逻辑,而行为级建模主要关注算法,结构化描述则通过实例化模块来反映设计层次。此外,文章还提及了RTL级和行为级的区别以及Verilog语法基础。
摘要由CSDN通过智能技术生成

一、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 之间的语句是顺序执行,属于串行语句。<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值