Verilog设计与验证 学习笔记一

Verilog设计与验证 学习笔记一

第四章 RTL概念与RTL建模 安排常用的设计实例,对RTL建模有感性的认识
第五章 重点讨论RTL级的编码风格和各种设计原则
第六章 讨论RTL级设计的FSM(有限状态机)的描述技巧

第四章 RTL概念与RTL建模

主要内容如下:
RTL与综合的概念
RTL级设计的基本要素和步骤
常用的RTL级建模
实例

RTL和综合的概念

1.HDL语言的层次:

系统级(system level)
功能模块级(function model level)
行为级(behavior level)
寄存器传输级(RTL,Register Transfer Level)
门级(Gate Level)

2.RTL级概念:

不关注寄存器和组合逻辑的细节,
通过描述寄存器到寄存器之间的逻辑功能描述电路的HDL层次。

3.RTL级综合:

将RTL级源代码翻译并优化为门级网表
在可编程器件(PLD,主要是指FPGA和CPLD)设计领域,最重要的设计层次就是RTL级

RTL级设计的基本要素和步骤

1.典型的RTL级设计包含三部分:

时钟域描述

时序逻辑描述(寄存器描述):

根据时钟沿的变换,描述寄存器之间的数据传输方式

组合逻辑描述:

描述电平敏感信号的逻辑组合方式和逻辑功能

2.全局时钟资源的特点是几乎没有Clock Skew(时钟偏斜),有一定的Clock Delay(时钟延时);
第二全局时钟资源的特点是具有娇羞奥的Clock Skew和Clock Delay,时钟驱动能力较强。

3.RTL级代码的设计顺序

  1. 功能定义与模块划分
  2. 定义所有模块的接口
  3. 设计时钟域
  4. 考虑设计的关键路径
  5. 顶层设计
  6. FSM设计
  7. 时序逻辑设计
  8. 组合逻辑设计

4.设置异步复位信号

设置异步复位信号“reset_”为低有效信号(下降沿开始复位):

reg [3:0] cnt_reg;

always @ (posedge clock or negedge reset_)

if ( !reset_ )
	cnt_reg<= 4'b0000;
else
	begin
		......
	end

5.设置同步复位信号

always的敏感列表中仅有时钟沿信号,仅当时钟沿猜到同步复位的有效电平时,才会在时钟沿到达时刻进行复位/置位的操作。

reg [3:0] cnt_reg;

always @ (posedge clock)

if(!reset_)
	cnt_reg <= 4'b0000;
else
	begin
	......
	end
tips:

在时钟的上升沿和下降沿到达时

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值