FPGA入门教程(17)

2021-02-21 13:33

4.RTL设计

4.1使用verilog进行RTL设计

使用verilog进行RTL设计一般可归纳为3种基本的描述方式:

1、数据流描述:采用assign连续赋值语句

2、行为描述:使用always语句或initial语句块的过程赋值语句。

3、结构化描述:实例化已有的功能模块或原语,即平常所说的元件例化和IP core。 其中,连续赋值语句是连续驱动的,也就是说只要输入变化,都会导致该语句的重新计算。其被赋值的变量不会被电路寄存。过程赋值语句包括非阻塞过程赋值、阻塞过程赋值和连续过程赋值。对于这些抽象的概念,我们将在其后的实际例子中详细解释。

4.1.1硬件设计意识

RTL设计其实就是用语言的方式去描述硬件电路行为的过程。这同一般的软件设计有很大区别,因为对于很多的软件代码,硬件电路是无法实现的(即无法综合,从语言到硬件电路的解析过程称为综合)。我们只能使用可综合的代码结构来实现我们所需的硬件电路。

首先,我们需要建立硬件设计的意识,硬件意识是RTL级设计的基础。

1.电路在物理上是并行工作的。其含义是,一旦接通电源,所有电路都同时工作。 2.电路行为的先后顺序通过时钟节拍得顺序来体现。

4.1.2 RLT级设计时需注意的问题:

1.凡是在always或initial语句中赋值的变量,一定是reg类型变量;凡是在assign语句中赋值的变量,一定是wire类型变量;

2. 定义存储器:reg [3:0] MEMORY [0:7]; 地址为0~7,每个存储单元都是4bit; 3.由于硬件是并行工作的,在Verilog语言的module中,所有描述语句(包括连续赋值语句assign、行为语句块always和initial语句块以及模块实例化)都是并发执行的。

4.使用完备的if…else语句,使用条件完备的case语句并设置default操作,以防止产生锁存器latch,因为锁存器对毛刺敏感。

5.严禁设计组合逻辑反馈环路,它最容易引起振荡、毛刺、时序违规等问题。 6.不要在两个或两个以上的语句块(always或initial)中对同一个信号赋值。


FPGA入门教程(17).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公务员考试与事业单位考试的六项区别

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: