FPGA设计基础第3章FPGA设计入门PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
3.1 系统的抽象层次与Verilog
Verilog可以在三个域、五个抽象层次上描 述一个系统。
行为模型---着重于描述系wenku.baidu.com的功能,忽略 系统的实现(系统级或体系结构级,也可 能是算法级)。
结构模型---较为详细地至少描述到寄存器 数据流的方式,大体的描述到了系统的结 构和实现(RTL/门级/开关级)。
endmodule
P9age 6
3.1 系统的抽象层次与Verilog
行为级综合有时也称为高层次综合(high -level synthesis),高层次综合工具对行为 级描述电路的综合效果没有用RTL级描述的电 路综合的效果好,故大部分的电路是在RTL级 进行描述的。
我们通常用 Verilog 在RTL级描述一个设计, 借助于自动综合工具,设计人员可以将RTL级 代码快速且便捷地变换成逻辑级描述。
因为在系统设计 初期,人们更关心 所设计系统的逻辑 功能,还未关心系 统的性能。
行为级功能确认 后,可进一步细化 得到结构模型。
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];
要对每一种输入的组合,都必须有一个值与 之对应,否则会导致锁存器产生(组合电路
良好的建模风格是控制综合结果的最有力 的手段。
P1a3ge 10
3.2.1 代码的书写风格
编写代码的目的是对系统进行精确的描述,进行 人--机(人--人)交流
1、完备清晰的版本信息 2、简洁扼要的功能说明,端口说明、变量说明,注
释信息 3、规范的端口定义,端口、变量命名规则
4、模块互连时采用 “显式关联方式”
q1 = d;
q3 <= q2;
end
end
end
//A 1
//B
//C
备注:综合结果见 P91、P92 图示。例3.2 见 ModelSim 例集
P1a5ge 12
A:
D触发器
B、C: 三移位寄存器
Page 13
3.2.2 可综合代码的编码风格
建议:
在用always过程建立组合电路时 ,使用 阻塞赋值(=),在用always过程描述时序 电路时,使用非阻塞赋值语句 (<=)。
P1a4ge 11
3.2.2 可综合代码的编码风格
1、正确地理解和使用“阻塞/非阻塞”赋值
例3.1 三级移位寄存器的设计。
always @(posedge clk)
begin
begin
begin
q1 = d;
q3 = q2;
q1 <= d;
q2 = q1;
q2 = q1;
q2 <= q1;
q3 = q2;
1P0age 7
3.1 系统的抽象层次与Verilog
C1
D1
C2
D2
C3
Input
DQ
DQ
output
comb
comb
comb
CLK
RTL级描述的典型模型
1P1age 8
3.1 系统的抽象层次与Verilog
对于有些特殊的电路,我们有时也采用“门 级描述”来描述结构模型---即通过逻辑门及其 互连线描述电路。在Verilog中可以通过三种实 例化语句描述结构模型。
小技巧:
在用always过程建立组合电路时 ,所有 的RHS变量都要加入到敏感变量表中。
备注:理解 Book P94,例3.3
P1a7ge 14
3.2.2 可综合代码的编码风格
2、组合电路设计
a>可综合组合 电路的三种 描述形式
结构原语 连续赋值语句 always 语句
注意:在使用 always 过程描述组合电路时,
Verilog內建的基本逻辑门
用户定义原语UPD
Module实例语句
(Book P86/87分别有RTL描述和门级描述例子)
1P2age 9
3.2 用Verilog建立数字电路模型
设计的最终目标是将设计电路映射到具体 的物理器件上。Verilog功能强大,用途范围 广泛,语句丰富,但其中只有部分子集描述 的设计可以通过EDA工具综合成具体的电路---Verilog可综合子集。
P5age 3
3.1 系统的抽象层次与Verilog
2、系统描述的五个层次
工程师可以在系统级、算法级、RTL (Register Transfer Level 寄存器传输)级、 逻辑级和电路级五个层次上描述一个系统, 其中系统级的抽象层次最高,而电路级的抽 象层次最低。抽象层次越高,所包含的细节 信息就越少,抽象层次越低,所包含的细节 就越多。
第三章 FPGA设计入门
有效的建模风格是控制综合结果的最有力手段。 绝大多数系统设计都是使用HDL来实现 。 利用Verilog HDL进行FPGA设计规则、方法和技巧。
P1age 1
组合逻辑电路
是指数字电路在任何时刻的输出仅仅取 决于该时刻数字电路的输入,而与电路 原来的状态 无关。
组合逻辑电路分类:
门电路 编码器、译码器和选择器 数据缓冲器
2
时序逻辑电路
时序逻辑电路就是指数字电路在任何时刻的输出不仅 仅取决于该时刻数字电路的输入,还取决于电路原来 的状态。
时钟:进程敏感信号 同步与异步复位
同步复位:复位语句是在以时钟为进程中执行 异步复位:进程敏感信号包括时钟和复位信号 分类: 触发器 计数器:同步:在时钟下,各触发器状态同时变化
异步:上一位数据是下个触发器的时钟信号
3
3.1 系统的抽象层次与Verilog
一个系统可以在不同的抽象层次上进行描述, 也可以从不同的描述域(行为/结构/物理)进 行描述。 1、系统描述的三个 “域” 行为域说明一个特定的系统完成什么功能 结构域说明不同的实体之间是如何连接的 物理域则说明如何构造出一个实际的器件
P6age 4
行为域
系统级 算法级
结构域
RT L级
系统规范 算法
逻辑级
处 理 器 /存 储 器
寄存器传输 电路级
控制器
布尔等式 晶体管函数
门 电 路 ALU 晶体管
晶体管版图
标准单元
宏单元
模块
芯 片 /板 级
物理域
Page 5
8
3.1 系统的抽象层次与Verilog
例如:行为级建模 4bit全加器。
3.1 系统的抽象层次与Verilog
Verilog可以在三个域、五个抽象层次上描 述一个系统。
行为模型---着重于描述系wenku.baidu.com的功能,忽略 系统的实现(系统级或体系结构级,也可 能是算法级)。
结构模型---较为详细地至少描述到寄存器 数据流的方式,大体的描述到了系统的结 构和实现(RTL/门级/开关级)。
endmodule
P9age 6
3.1 系统的抽象层次与Verilog
行为级综合有时也称为高层次综合(high -level synthesis),高层次综合工具对行为 级描述电路的综合效果没有用RTL级描述的电 路综合的效果好,故大部分的电路是在RTL级 进行描述的。
我们通常用 Verilog 在RTL级描述一个设计, 借助于自动综合工具,设计人员可以将RTL级 代码快速且便捷地变换成逻辑级描述。
因为在系统设计 初期,人们更关心 所设计系统的逻辑 功能,还未关心系 统的性能。
行为级功能确认 后,可进一步细化 得到结构模型。
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];
要对每一种输入的组合,都必须有一个值与 之对应,否则会导致锁存器产生(组合电路
良好的建模风格是控制综合结果的最有力 的手段。
P1a3ge 10
3.2.1 代码的书写风格
编写代码的目的是对系统进行精确的描述,进行 人--机(人--人)交流
1、完备清晰的版本信息 2、简洁扼要的功能说明,端口说明、变量说明,注
释信息 3、规范的端口定义,端口、变量命名规则
4、模块互连时采用 “显式关联方式”
q1 = d;
q3 <= q2;
end
end
end
//A 1
//B
//C
备注:综合结果见 P91、P92 图示。例3.2 见 ModelSim 例集
P1a5ge 12
A:
D触发器
B、C: 三移位寄存器
Page 13
3.2.2 可综合代码的编码风格
建议:
在用always过程建立组合电路时 ,使用 阻塞赋值(=),在用always过程描述时序 电路时,使用非阻塞赋值语句 (<=)。
P1a4ge 11
3.2.2 可综合代码的编码风格
1、正确地理解和使用“阻塞/非阻塞”赋值
例3.1 三级移位寄存器的设计。
always @(posedge clk)
begin
begin
begin
q1 = d;
q3 = q2;
q1 <= d;
q2 = q1;
q2 = q1;
q2 <= q1;
q3 = q2;
1P0age 7
3.1 系统的抽象层次与Verilog
C1
D1
C2
D2
C3
Input
DQ
DQ
output
comb
comb
comb
CLK
RTL级描述的典型模型
1P1age 8
3.1 系统的抽象层次与Verilog
对于有些特殊的电路,我们有时也采用“门 级描述”来描述结构模型---即通过逻辑门及其 互连线描述电路。在Verilog中可以通过三种实 例化语句描述结构模型。
小技巧:
在用always过程建立组合电路时 ,所有 的RHS变量都要加入到敏感变量表中。
备注:理解 Book P94,例3.3
P1a7ge 14
3.2.2 可综合代码的编码风格
2、组合电路设计
a>可综合组合 电路的三种 描述形式
结构原语 连续赋值语句 always 语句
注意:在使用 always 过程描述组合电路时,
Verilog內建的基本逻辑门
用户定义原语UPD
Module实例语句
(Book P86/87分别有RTL描述和门级描述例子)
1P2age 9
3.2 用Verilog建立数字电路模型
设计的最终目标是将设计电路映射到具体 的物理器件上。Verilog功能强大,用途范围 广泛,语句丰富,但其中只有部分子集描述 的设计可以通过EDA工具综合成具体的电路---Verilog可综合子集。
P5age 3
3.1 系统的抽象层次与Verilog
2、系统描述的五个层次
工程师可以在系统级、算法级、RTL (Register Transfer Level 寄存器传输)级、 逻辑级和电路级五个层次上描述一个系统, 其中系统级的抽象层次最高,而电路级的抽 象层次最低。抽象层次越高,所包含的细节 信息就越少,抽象层次越低,所包含的细节 就越多。
第三章 FPGA设计入门
有效的建模风格是控制综合结果的最有力手段。 绝大多数系统设计都是使用HDL来实现 。 利用Verilog HDL进行FPGA设计规则、方法和技巧。
P1age 1
组合逻辑电路
是指数字电路在任何时刻的输出仅仅取 决于该时刻数字电路的输入,而与电路 原来的状态 无关。
组合逻辑电路分类:
门电路 编码器、译码器和选择器 数据缓冲器
2
时序逻辑电路
时序逻辑电路就是指数字电路在任何时刻的输出不仅 仅取决于该时刻数字电路的输入,还取决于电路原来 的状态。
时钟:进程敏感信号 同步与异步复位
同步复位:复位语句是在以时钟为进程中执行 异步复位:进程敏感信号包括时钟和复位信号 分类: 触发器 计数器:同步:在时钟下,各触发器状态同时变化
异步:上一位数据是下个触发器的时钟信号
3
3.1 系统的抽象层次与Verilog
一个系统可以在不同的抽象层次上进行描述, 也可以从不同的描述域(行为/结构/物理)进 行描述。 1、系统描述的三个 “域” 行为域说明一个特定的系统完成什么功能 结构域说明不同的实体之间是如何连接的 物理域则说明如何构造出一个实际的器件
P6age 4
行为域
系统级 算法级
结构域
RT L级
系统规范 算法
逻辑级
处 理 器 /存 储 器
寄存器传输 电路级
控制器
布尔等式 晶体管函数
门 电 路 ALU 晶体管
晶体管版图
标准单元
宏单元
模块
芯 片 /板 级
物理域
Page 5
8
3.1 系统的抽象层次与Verilog
例如:行为级建模 4bit全加器。