FPGA设计基础第3章FPGA设计入门

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page 6
3.1 系统的抽象层次与Verilog
行为级综合有时也称为高层次综合(high -level synthesis),高层次综合工具对行为 级描述电路的综合效果没有用RTL级描述的电 路综合的效果好,故大部分的电路是在RTL级 进行描述的。 我们通常用 Verilog 在RTL级描述一个设计, 借助于自动综合工具,设计人员可以将RTL级 代码快速且便捷地变换成逻辑级描述。
第三章 FPGA设计入门

有效的建模风格是控制综合结果的最有力手段。 绝大多数系统设计都是使用HDL来实现 。
利用Verilog HDL进行FPGA设计规则、方法和技巧。
百度文库
Page 1
组合逻辑电路

是指数字电路在任何时刻的输出仅仅取 决于该时刻数字电路的输入,而与电路 原来的状态 无关。

组合逻辑电路分类:
Page 7
3.1 系统的抽象层次与Verilog
C1 Input comb D1 C2 D2 C3
D
Q
comb
D
Q
output comb
CLK
RTL级描述的典型模型
Page 8
3.1 系统的抽象层次与Verilog
对于有些特殊的电路,我们有时也采用“门 级描述”来描述结构模型---即通过逻辑门及其 互连线描述电路。在Verilog中可以通过三种实 例化语句描述结构模型。

行为级功能确认 后,可进一步细化 得到结构模型。

module adder(a,b,c0,c, sum); input [3:0] a,b; input c0; output [3:0] sum; output c; wire [4:0] mid_res; assign mid_res = a + b + c0; assign sum = mid_res[3:0]; assign c = mid_res[4]; endmodule
Verilog可以在三个域、五个抽象层次上描 述一个系统。

行为模型---着重于描述系统的功能,忽略 系统的实现(系统级或体系结构级,也可 能是算法级)。 结构模型---较为详细地至少描述到寄存器 数据流的方式,大体的描述到了系统的结 构和实现(RTL/门级/开关级)。
Page 3

3.1 系统的抽象层次与Verilog
系统级 行为域 算法级 RTL级
系统规范 算法 寄存器传输
布尔等式 晶体管函数
结构域
逻辑级 电路级
门电路 晶体管 晶体管版图 标准单元 宏单元 ALU
处 理 器 /存 储 器 控制器
模块
芯 片 /板 级
物理域
Page 5
3.1 系统的抽象层次与Verilog
例如:行为级建模 4bit全加器。 因为在系统设计 初期,人们更关心 所设计系统的逻辑 功能,还未关心系 统的性能。
Page 12
备注:综合结果见 P91、P92 图示。例3.2 见 ModelSim 例集
A:
D触发器
B、C:
三移位寄存器
Page 13
3.2.2 可综合代码的编码风格

建议:
在用always过程建立组合电路时 ,使用 阻塞赋值(=),在用always过程描述时序 电路时,使用非阻塞赋值语句 (<=)。
小技巧: 在用always过程建立组合电路时 ,所有 的RHS变量都要加入到敏感变量表中。 备注:理解 Book P94,例3.3
Page 14
3.2.2 可综合代码的编码风格
2、组合电路设计
a>可综合组合 电路的三种 描述形式


结构原语 连续赋值语句 always 语句
注意:在使用 always 过程描述组合电路时,
门电路 编码器、译码器和选择器 数据缓冲器
时序逻辑电路



时序逻辑电路就是指数字电路在任何时刻的输出不仅 仅取决于该时刻数字电路的输入,还取决于电路原来 的状态。 时钟:进程敏感信号 同步与异步复位 同步复位:复位语句是在以时钟为进程中执行 异步复位:进程敏感信号包括时钟和复位信号 分类: 触发器 计数器:同步:在时钟下,各触发器状态同时变化 异步:上一位数据是下个触发器的时钟信号
1、正确地理解和使用“阻塞/非阻塞”赋值
例3.1 三级移位寄存器的设计。
always @(posedge clk) begin begin q1 = d; q3 = q2; q2 = q1; q2 = q1; q3 = q2; q1 = d; end end //A 1 //B
begin q1 <= d; q2 <= q1; q3 <= q2; end //C

Verilog內建的基本逻辑门 用户定义原语UPD Module实例语句
(Book P86/87分别有RTL描述和门级描述例子)
Page 9
3.2 用Verilog建立数字电路模型
设计的最终目标是将设计电路映射到具体 的物理器件上。Verilog功能强大,用途范围 广泛,语句丰富,但其中只有部分子集描述 的设计可以通过EDA工具综合成具体的电路---Verilog可综合子集。 良好的建模风格是控制综合结果的最有力 的手段。
3.1 系统的抽象层次与Verilog
一个系统可以在不同的抽象层次上进行描述, 也可以从不同的描述域(行为/结构/物理)进 行描述。
1、系统描述的三个 “域”

行为域说明一个特定的系统完成什么功能


结构域说明不同的实体之间是如何连接的
物理域则说明如何构造出一个实际的器件
3.1 系统的抽象层次与Verilog
要对每一种输入的组合,都必须有一个值与 之对应,否则会导致锁存器产生(组合电路 不建议使用锁存器)。
Page 10
3.2.1 代码的书写风格

编写代码的目的是对系统进行精确的描述,进行 人--机(人--人)交流
1、完备清晰的版本信息 2、简洁扼要的功能说明,端口说明、变量说明,注 释信息 3、规范的端口定义,端口、变量命名规则
4、模块互连时采用 “显式关联方式”
Page 11
3.2.2 可综合代码的编码风格
2、系统描述的五个层次
工程师可以在系统级、算法级、RTL (Register Transfer Level 寄存器传输)级、 逻辑级和电路级五个层次上描述一个系统, 其中系统级的抽象层次最高,而电路级的抽 象层次最低。抽象层次越高,所包含的细节 信息就越少,抽象层次越低,所包含的细节 就越多。
Page 4
相关文档
最新文档