基于Uerilog HDL 的数字系统应用设计(第2版)(含光盘)
分類: 图书,计算机/网络,行业软件及应用,
作者: 王钿,卓兴旺编著
出 版 社: 国防工业出版社
出版时间: 2007-8-1字数: 452000版次: 2页数: 295印刷时间: 2007/08/01开本:印次:纸张: 胶版纸I S B N : 9787118052770包装: 平装内容简介
本书结合实践系统地介绍了基于Verilog数字逻辑设计相关的内容,包括工具使用、RTL设计及Testbench的设计。
本书共分为7章。第1章对数字逻辑设计进行了概述;第2章介绍了常用 EDA工具的使用;第3章介绍了RIL设计的相关内容;第4章介绍了功能验证及Testbench相关的内容;第5章结合一个串口配置寄存器的电路对第3章和第4章的内容进行了实践;第6章对数字信号处理中的常用电路进行了讲解;第7章介绍了逻辑设计需要考虑的工程因素。
本书适合对Verilog语法已略有了解的读者阅读,也适于在数字逻辑设计方面摸索多年的工程师参考。
目录
第1章 逻辑设计发展现状及开发流程
1.1 硬件描述语言HDL(Hardware Descrjption Langu)
1.1.1 硬件描述语言简介
1.1.2 Verilog语言简介
1.2 可编程逻辑器件
1.2.1 专用ASIC芯片VS.可编程逻辑器件
1.2.2 FPGA VS.CPI.D
1.2.3主流FPGA厂商介绍
1.2.4在选择FPGA器件时需要考虑的问题
1.3 基于Verilog的jFPGA设计方法及流程
1.3.1 设计方法
1.3.2 典型的FPGA设计流程
1.4 SOC与IP复用
1.4.1 SOC简介
1.4.2 IP CORE简介
1.4.3 设计方法学的进展
第2章 常用FPGA开发工具的使用
2.1 仿真工具Modelsim
2.1.1 Modelsim简介
2.1.2 用Modelsim6.0做功能仿真
2.1.3 用Modelsim做时序仿真
2.1.4 Modelsim其他一些应用技巧
2.2 综合工具Synplify Pro
2.2.1 Synplify Pro简介
2.2.2 用Synplify Pro进行设计综合流程
2.3 集成开发环境QuaIks II
2.3.1 Quartus II简介
2.3.2 设计输入
2.3.3 约束输入
2.3.4 综合
2.3.5 布局布线
2.3.6 仿真
2.3.7 时序分析
2.3.8 编程和配置
第3章 RTL级建模
3.1 硬件意识
3.2 RTL级语法
3.2.1 Verilog模块基本结构
3.2.2 端口定义
3.2.3 对带三态输出端口的建模
3.2.4 对双向端口的建模
3.2.5 数据类型
3.2.6 连续赋值语句
3.2.7 敏感信号列表
3.2.8 always块
3.2.9 条件语句
3.2.10 多路分支语句
3.2.11 关于casez和casex的补充说明
3.2.12 if...else语句与case语句综合结果的比较
3.2.13 再谈锁存器
3.2.14 循环语句
3.2.15 阻塞与非阻塞赋值
3.2.16 模块例化
3.3 常用电路的设计
3.3.1 D触发器
3.3.2 多路复用器
3.3.3 多路解复用器
3.3.4 计数器与分频器
3.3.5 移位寄存器
3.3.6 时钟使能电路
3.3.7 边沿检测电路
3.4 有限状态机的设计
3.4.1 概述
3.4.2 moore型状态机
3.4.3 mealy型状态机
3.4.4 moore型状态机与mealv型状态机的选用
3.4.5 状态机的代码风格
3.4.6 状态编码
3.5 FPGA结构
3.5.1 FPGA的整体结构
3.5.2 10管脚
3.5.3 LE
3.5.4 LAB
3.5.5 片内存储单元
3.5.6 锁相环与全局时钟网络
3.5.7 DSP模块
3.5.8 使用FPGA的一些建议
3.6 时序分析的基本概念
3.6.1 tsu与tH
3.6.2 亚稳态
3.6.3 tco
3.6.4 Clock skew
3.6.5 FMAX的计算
3.6.6 Multicycle path
3.7 同步设计
3.7.1 什么是同步设计
3.7.2 同步设计的优点
3.7.3 同步设计准则
3.8 约束
3.8.1 约束对综合工具/布局布线工具的影响
3.8.2 在synplify中添加约束
3.8.3 在Qualtus中添加约束
3.8.4 静态时序分析报告
3.9 如何提高电路的工作频率
3.9.1 影响电路工作频率的因素
3.9.2 减少走线时延
3.9.3 减少组合逻辑的时延
3.10 多时钟域处理
3.10.1 单个信号跨时钟域
3.10.2 一组信号跨时钟域
3.11 设计时序
3.12 代码优化
3.13 RTL级设计的其他注意事项
3.13.1 命名规范
3.13.2 保持良好的代码风格
3.13.3 参数化设计
3.13.4 输出应尽可能采用寄存器输出
3.13.5 将相关逻辑放在同一模块
3.13.6 尽量在“叶子”中做逻辑,顶层只做例化
3.13.7 “简单”
第4章 Testbench
4.1 功能验证
4.1.1 收敛模型
4.1.2 验证方法
4.1.3 覆盖率检查
4.2 Testbench概述
4.2.1 什么是Testbench
4.2.2 为什么要写Testbench
4.2.3 Testbench模型
4.2.4 一个简单的Testbench
4.3 行为级的Werilog语言
4.3.1 RTL建模VS.行为级建模
4.3.2 行为级的Verilog语法
4.3.3 再谈阻塞与非阻塞赋值
4.3.4 信号竞争问题
4.4 激励和响应
4.4.1 激励
4.4.2 响应
4.4.3 自动比较响应
4.5 总线功能模型
4.5.1 总线功能模型的地位
4.5.2 总线功能模型的要求
4..5.3 总线功能模型的设计
4.6 Testbench的结构
4.6.1 Testbench的层次
4.6.2 Testbench的重用性
第5章 RS232通信程序的设计
5.1 RS232基础
5.2 设计需求
5.3 模块划分
5.3.1 RTL级划分
5.3.2 Testbench的结构划分
5.4 RTL级代码
5.4.1 top-module模块
5.4.2 config-registers模块
5.4.3 frame-deal模块
5.4.4 tx-frame模块
5.4.5 rx-flame模块
5.4.6 rs232模块
5.4.7 txmit模块
5.4.8 rxvr模块
5.4.9 clken-gen模块
5.5 Testbench
5.5.1 Testcase模块
5.5.2 bm-frame-deal模块
5.5.3 harness模块
5.5.4 bfm-uart模块
5.5.5 osc-rst模块
5.6 仿真结果
第6章 数字信号处理的Verilog设计
6.1 数字信号处理FPGA实现简介
6.2 数字信号处理基本模块的实现
6.2.1 加法器
6.2.2 乘法器
6.2.3 积分器
6.2.4 微分器
6.2.5 抽取和内插
6.2.6 用COR2DIC算法实现信号处理的常用模块
6.3 FIR滤波器的实现
6.3.1 FIR滤波器简介
6.3.2 FIR滤波器的串行实现
6.3.3 FIR滤波器的并行实现
6.3.4 FIR滤波器的分布式实现
6.3.5 三种滤波方案的比较和选用
6.4 数字信号处理程序的仿真验证
第7章 逻辑设计的工程因素
7.1 芯片的可测试性设计
7.2 芯片的可靠性设计
7.3 逻辑设计需要考虑的其他工程因素
7.3.1 电源归一化
7.3.2 管脚排布
7.3.3 上电功耗
附录 相关资源介绍
参考文献