当前位置:首页 > 工业技术
VHDL:代码编写和基于SYNOPSYS工具的逻辑综合
VHDL:代码编写和基于SYNOPSYS工具的逻辑综合

VHDL:代码编写和基于SYNOPSYS工具的逻辑综合PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:Weng Fook Lee著(AMD公司)
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302160953
  • 页数:394 页
图书介绍:本书首先介绍VHDL代码编写,其次介绍利用基于SYNOPSYS工具的逻辑综合应用。
《VHDL:代码编写和基于SYNOPSYS工具的逻辑综合》目录

第1部分 VHDL代码编写 3

第1章 绪言 3

1.1 传统设计方法——原理图输入 3

1.2 硬件描述语言 3

1.3 VHDL设计的结构 4

1.4 VHDL设计内的元件实例化 7

1.5 结构式、行为式与可综合VHDL设计 10

1.5.1 结构式VHDL描述 10

1.5.2 行为式VHDL描述 12

1.5.3 RTL级代码 14

1.6 在VHDL设计中使用库声明 16

第2章 VHDL仿真与综合流程 18

第3章 基本逻辑元件的可综合代码 20

3.1 与逻辑 20

3.2 或逻辑 21

3.3 非逻辑 22

3.4 与非逻辑 23

3.5 或非逻辑 24

3.6 三态缓冲器逻辑 26

3.7 复杂逻辑门 27

3.8 锁存器 28

3.8.1 避免代码中出现锁存器 29

3.9 触发器 33

3.10 译码器 34

3.11 编码器 36

3.12 多路选择器 37

3.13 优先级编码器 39

3.14 存储器单元 41

3.15 加法器 42

3.16 元件推定 44

第4章 信号与变量 46

4.1 变量 46

4.2 信号 47

4.3 采用信号和变量的时机 51

4.4 反馈信号的用法 53

第5章 复杂示例的可综合代码 56

5.1 移位器 56

5.2 计数器 66

5.3 存储器模块 73

5.4 汽车行驶控制器 80

第6章 设计可综合的流水式微控制器 87

6.1 定义指令集 87

6.2 定义体系结构 88

6.3 定义流水线 90

6.4 定义流水式微控制器的微结构 91

6.4.1 预译码功能块 93

6.4.2 译码功能块 104

6.4.3 寄存器堆功能块 112

6.4.4 执行功能块 121

6.4.5 整个微控制器芯片 131

第2部分 基于SYNOPSYS工具的逻辑综合 147

第7章 设计中的时序因素 147

7.1 建立时间违规 147

7.2 保持时间违规 148

7.3 逻辑综合中的建立时间和保持时间因素 148

7.4 改进微结构以消除建立时间违规 149

7.4.1 通过逻辑复制生成独立路径 150

7.4.2 在利用滞后到达信号作选择之前进行逻辑复制 150

7.4.3 在触发器间进行逻辑均衡 151

7.4.4 优先级译码与多路译码 152

7.5 改进微结构以消除保持时间违规 153

7.6 异步路径与无效路径 153

7.7 多周期路径 153

第8章 基于时序约束的VHDL综合 155

8.1 Design Compiler简介 155

8.2 使用Design Compiler进行综合 156

8.3 性能改进 159

8.3.1 采用-map_effort high选项编译 159

8.3.2 将关键路径聚合成组并设定权重因子 164

8.3.3 对设计对象进行逻辑展平 170

8.3.4 表征子模块 174

8.3.5 寄存器均衡 175

8.3.6 采用FSM Compiler优化有限状态机 181

8.3.7 对高级功能模块选择高速实现电路 186

8.3.8 对重负载逻辑树进行均衡 187

8.4 通过综合改进实现面积优化 190

8.4.1 组合逻辑不单独作为功能块使用 190

8.4.2 模块间不使用胶黏逻辑 191

8.4.3 使用set_max_area属性 192

8.5 使用Synopsys工具消除保持时间违规 193

8.6 其他常用的综合命令 193

8.7 自顶而下与自底而上编译 224

第9章 实例化GTECH库单元 227

第10章 DesignWare库 229

10.1 建立自己的DesignWare库 233

第11章 综合中的可测试性问题 240

11.1 复用触发器扫描方式 241

11.2 使用Synopsys的Test Compiler实现扫描插入 243

第12章 FPGA综合 250

第13章 综合与版图工序之间的联系 260

13.1 前向标注 260

13.2 连线负载模型 261

13.3 版面规划 262

13.4 版图工序之后的优化 263

第14章 实现有效综合应遵循的设计指导原则 264

附录A STD_LOGIC_1164库 266

附录B 移位器综合结果 302

附录C 计数器综合结果 308

附录D 流水式微控制器综合结果 312

附录E 第6章微控制器示例综合出的EDIF文件 330

附录F 第6章微控制器示例综合出的SDF文件 359

词汇表 392

参考文献 394

图1 只有一个结构体的设计 5

图2 具有多个结构体的设计 5

图3 层次化的设计对象 7

图4 实例化出3个与门元件的设计 7

图5 “某一模块”的原理图 10

图6 HDL仿真与综合的常规流程 18

图7 VHDL设计对象及其测试平台 19

图8 综合出的与逻辑 21

图9 综合出的或逻辑 22

图10 综合出的非逻辑 23

图11 综合出的与非逻辑门 24

图12 综合出的或非逻辑门 25

图13 综合出的三态缓冲器 27

图14 综合出的复杂逻辑门 28

图15 综合出的锁存器 29

图16 综合出的触发器 33

图17 综合出的译码器 35

图18 综合出的编码器 37

图19 综合出的多路选择器逻辑 38

图20 综合出的优先级编码器 41

图21 具有滞后到达信号E的逻辑元件 41

图22 综合出的采用触发器的存储器单元 42

图23 综合出的加法器方块图 43

图24 由逻辑门构造出的加法器的原理图 44

图25 例27(采用变量)的仿真结果时序图 51

图26 例28(采用信号)的仿真结果时序图 51

图27 反馈信号 53

图28 4位移位器设计的引脚示意图 57

图29 移位器设计的流程图 58

图30 左移时序图 65

图31 右移时序图 65

图32 桶式右移时序图 65

图33 桶式左移时序图 66

图34 4位计数器设计引脚示意图 67

图35 计数器设计的递增计数时序图 72

图36 计数器设计的递减计数时序图 72

图37 存储器模块引脚示意图 73

图38 存储器模块读操作/写操作流程图 74

图39 存储器模块写操作时序波形图 79

图40 存储器模块读操作时序波形图 79

图41 汽车行驶控制器模块状态图 81

图42 汽车行驶控制器的仿真结果时序图 86

图43 微控制器接口示意图 88

图44 微控制器的流水阶段 90

图45 流水线中的指令执行过程 91

图46 整个微控制器芯片的微结构定义 92

图47 预译码功能块接口信号示意图 95

图48 预译码功能块测试平台时序波形图 103

图49 译码功能块接口信号示意图 105

图50 译码功能块测试平台时序波形图 111

图51 寄存器堆功能块接口信号示意图 113

图52 寄存器堆测试平台仿真结果时序波形图 120

图53 执行功能块接口信号示意图 122

图54 执行功能块接口信号示意图 127

图55 执行功能块测试平台时序波形图 130

图56 微控制器测试平台时序波形图 144

图57 以组合逻辑驱动触发器的输入信号A的电路示意图 148

图58 信号A的建立时间时序图 148

图59 信号A的保持时间时序图 148

图60 对综合出的电路作静态时序分析 149

图61 某个组合逻辑电路示意图 150

图62 某个作了逻辑复制的组合逻辑电路示意图 150

图63 某逻辑电路示意图 151

图64 通过逻辑复制对稍早到达的信号提前译码的逻辑电路示意图 151

图65 采用多级译码的设计示意图 151

图66 某个采用多级译码而作了逻辑均衡的设计示意图 152

图67 采用优先级译码的设计 152

图68 采用多路译码的设计 152

图69 保持时间违规的设计 153

图70 消除了保持时间违规的设计对象示意图 153

图71 具有多周期路径的设计对象示意图 154

图72 以虚拟时钟为参照的输入延迟和输出延迟时序图 160

图73 顶层TOP模块和其多个子模块的示意图 174

图74 流水式设计对象的示意图 175

图75 未作划分的设计对象 182

图76 划分得体的零散逻辑和状态机 182

图77 由balance_buf_ent综合出的电路 188

图78 对balance_buf_ent作了balance_buffer处理而综合出的电路 190

图79 独立的组合逻辑功能块 191

图80 将组合逻辑X、Y和Z组合起来 191

图81 模块A和C之间的胶黏逻辑 192

图82 RESET是无效路径 193

图83 多周期路径 194

图84 推导出的四个与门 213

图85 两个与门聚成一组形成b1ock1 213

图86 将与门聚组形成block1和b1ock2 214

图87 使用LOOP和NEXT语句的VHDL代码的综合结果 217

图88 具有5个子模块的顶层设计对象示意图 224

图89 顶层模块的时间预算示意图 226

图90 从GTECH库中的XNOR4映射出四输入XNOR逻辑单元 228

图91 从GTECH库中的XNOR4映射出两输入XNOR逻辑单元和两输入XOR逻辑单元 228

图92 含测试插入的综合/版图设计流程图 241

图93 用作等价扫描单元的复用触发器 241

图94 扫描模式和正常工作模式下复用触发器的用法 242

图95 设计对象中的扫描链 242

图96 将设计对象综合到FPGA中的步骤流程图 250

图97 从综合到版图工序间的信息前向标注图 260

图98 RC信息的反向标注 262

表1 “某一模块”的真值表 12

表2 “某一模块”的卡诺图 15

表3 与逻辑功能的真值表 20

表4 或逻辑功能的真值表 21

表5 与非逻辑功能的真值表 23

表6 或非逻辑功能的真值表 25

表7 三态缓冲器逻辑功能的真值表 26

表8 复杂逻辑门功能的真值表 27

表9 译码逻辑功能的真值表 34

表10 8输入编码器的真值表 36

表11 多路选择器逻辑功能的真值表 37

表12 逐位选择式优先级编码器的真值表 39

表13 加法器逻辑功能的真值表 43

表14 用于逻辑元件推导的算符和关键字 45

表15 各种移位模式的移位过程 56

表16 移位器的引脚和功能描述 57

表17 计数器设计的引脚描述 66

表18 存储器模块的引脚描述 73

表19 汽车行驶控制器模块的引脚描述 80

表20 微控制器指令集描述 87

表21 微控制器接口信号的描述 89

表22 微控制器16个内部寄存器的表示法 89

表23 预译码功能块接口信号的描述 93

表24 译码功能块接口信号的描述 105

表25 寄存器堆功能块接口信号的描述 112

表26 执行功能块接口信号的描述 121

表27 加法器的不同实现方案 187

例1 具有多种结构体的VHDL代码 6

例2 实例化出3个与门元件设计的VHDL代码 7

例3 “某一模块”的结构式VHDL描述 10

例4 “某一模块”的行为式代码 12

例5 “某一模块”的描述式VHDL代码 14

例6 编写可综合VHDL代码时使用类型转换函数 17

例7 与逻辑的可综合代码 20

例8 或逻辑的可综合代码 21

例9 非逻辑的可综合代码 22

例10 与非逻辑的可综合代码 24

例11 或非逻辑的可综合代码 25

例12 三态缓冲器逻辑的可综合代码 26

例13 复杂逻辑门的可综合代码 27

例14 锁存器的可综合代码 29

例15 产生锁存器的IF语句代码 30

例16 不会产生锁存器的IF语句代码 30

例17 产生锁存器的CASE语句代码 31

例18 不会产生锁存器的CASE语句代码 32

例19 触发器的可综合代码 33

例20 译码器的可综合代码 34

例21 编码器的可综合代码 36

例22 多路选择器逻辑的可综合代码 38

例23 优先级编码器的可综合代码 40

例24 存储器单元的可综合代码 41

例25 加法器的可综合代码 43

例26 推导出与门的VHDL代码 45

例27 体现变量用法的VHDL代码 46

例28 体现信号用法的VHDL代码 47

例29 仿真信号和变量用法的测试平台 48

例30 声明使用一个BUFFER端口和一个OUT端口的VHDL代码 53

例31 使用信号实现反馈 54

例32 4位移位器的可综合VHDL代码 57

例33 4位移位器设计的测试平台 59

例34 4位计数器设计的可综合VHDL代码 66

例35 4位计数器设计的测试平台 68

例36 1KB容量存储器模块的可综合代码 74

例37 存储器模块的VHDL测试平台 76

例38 汽车行驶控制器模块的可综合VHDL代码 81

例39 汽车行驶控制器模块的测试平台 83

例40 预译码功能块的可综合VHDL代码 95

例41 用于核对功能正确性的测试平台的VHDL代码 99

例42 译码功能块的可综合VHDL代码 105

例43 译码功能块的测试平台 108

例44 寄存器堆功能块的可综合VHDL代码 113

例45 寄存器堆功能块测试平台的可综合VHDL代码 117

例46 执行功能块的可综合VHDL代码 122

例47 用于检查执行功能块功能正确性的测试平台 127

例48 整个微控制器芯片的可综合代码 131

例49 微控制器的测试平台 137

例50 32位加法器的可综合VHDL代码 159

例51 16位减法器 165

例52 4位乘法器 170

例53 具有2条流水线的设计对象的VHDL代码 176

例54 反相器的VHDL代码 187

例55 32位比较器的可综合VHDL代码 199

例56 采用BLOCK语句的四个与门的VHDL代码 211

例57 采用LOOP语法结构的VHDL代码 214

例58 采用GENERATE语法结构的VHDL代码 215

例59 使用LOOP和NEXT的VHDL代码 216

例60 含有组合反馈环路的设计对象的VHDL代码 218

例61 实例化GTECH库中的XNOR单元 227

例62 实例化DesignWare元件的VHDL代码 229

例63 对DesignWare DWO3库中的SRAM模块作实例化的VHDL代码 231

例64 N位移位器的VHDL代码 233

例65 实例化MY_DW_SHIFTER的VHDL代码 237

例66 连线负载模型 261

相关图书
作者其它书籍
返回顶部