FPGA学习笔记(三)——行为级建模

1 什么是行为级建模?

从电路外部行为的角度对电路进行描述,设计者更关心的是算法用硬件实现的方法和他的性能。

 

2 行为级建模有什么特点?

行为级建模的抽象程度更高,更加偏向与C语言,设计者更加偏向于电路的整体结构和模块所能实现的功能。

 

3 行为级建模的语言基础?

 

initial 语句:所有的initial语句内的语句构成一个独立的块,从0时刻开始执行,在整个仿真过程中只执行一次。

如果由多个 initial 这些块都是从0开始并行执行且执行一次。

 

always 语句:always 语句内所有行为语句构成一个always块,从0时刻开始顺序往下执行,执行完后循环。

通常用于对反复执行活动的建模,比如时钟信号。

always 语法更高级的用法,将会通过判断时钟信号的上升沿或者下降沿,进入块内执行行为语句。

 

 

4 什么是行为级建模中基于延迟的时序控制?

基于延迟的时许控制,它直接指明了程序从开始执行到执行完成的时间。

延迟值可以是数值,标识或者表达式,只需要在延迟值前面附加一个关键字#。

 

 

5 什么是基于事件的时序控制?

在Verilog 中,事件是指某一个寄存器的值或者线网变量发生变化,事件可以用来触发语句块。

常规事件控制:事件控制用符号 @ 来声明,语句继续执行的条件是信号的值发生了变化,发生正向跳变或者负向。关键字 posedge 代表上升沿,negedge代表下降沿。

命名事件控制:命名事件是由关键字 event 声明,他不会保存任何值,事件触发用  ->符号来表示,

or 事件控制:有时候,多个信号或者事件其中一个发生变化,就能够触发语句的执行。

 

 

6 阻塞和非组赛的区别?

阻塞赋值:“=”   阻塞赋值语句的执行是串行执行的,之前前面的阻塞赋值执行完了之后,才会执行后面的阻塞赋值语句。

比如下面的程序,必须是 x 被赋予 0 ,之后 y 才可以被赋予 1,且 reg_a[2] = 1'b1; 执行完后才能执行下一句,所以count = count + 1 是在25个时钟单位才执行。以此类推,但阻塞赋值语句不会阻塞后面的并行执行的语句。

 

非阻塞赋值:“<=”  它不会阻塞位于同一个顺序块的后面的语句的执行,所有的非阻塞语句可同时执行。

 

 

7 行为级建模的实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值