Verilog编程艺术

副标题:无

作   者:魏家明编著

分类号:

ISBN:9787121220616

微信扫一扫,移动浏览光盘

简介

本书深入地探讨了Verilog编程,分为七个部分:设计原则、语言特性、书写文档、高级设计、时钟和复位、验证之路、其他介绍。本书对这些部分做了重点的探讨:Verilog编码风格、Verilog-2001的新特性、简洁高效的编程、容易出错的语言元素、可配置设计、时钟生成、复位设计、验证方法等。另外,本书还对SystemVerilog做了简单的介绍。

目录

第一部分设计原则
第1章美的设计
1.1美学观点
1.2美是修养
1.3专业术语
第2章高效之道
2.1敏捷开发
2.2代码质量
2.3版本控制
2.4提早集成
第3章组织管理
3.1植物分类
3.2SoC特性
3.3设计流程
3.4仔细规划
3.5管理表格
3.6模块层次
3.7目录组织
第4章使用工具
4.1使用Emacs
4.1.1Emacs介绍
4.1.2Emacs安装
4.1.3常用快捷键
4.1.4我的emacs
4.1.5cua—base.el
4.1.6verilog—mode.el
4.1.7shellbuffer
4.2使用Shell
4.2.1Shell介绍
4.2.2Shell例子
4.2.3Perl例子
4.3使用CVS
4.3.1CVS介绍
4.3.2CVS术语
4.3.3CVS初始化
4.3.4CVS常用命令
第5章编码风格
5.1干干净净
5.2代码划分
5.3代码要求
5.3.1Verilog部分
5.3.2SystemVerilog部分
5.4名字定义
5.5书写格式
5.5.1模块端口声名
5.5.2模块实例化
5.5.3函数和任务调用
5.5.4书写语句
5.5.5书写表达式
5.6添加注释
5.7参数化
5.8lint检查
第二部分语言特性
第6章Verilog特性
6.1Verilog标准
6.2抽象级别
6.3可综合子集
6.4保持一致
第7章常数
7.1整数(integer)
7.2实数(real)
7.3字符串(string)
7.4标识符(identifier)
第8章数据类型
8.1线网(net)
8.1.1wire和tri
8.1.2wor、wand、trior、triand
8.1.3tri0、tri1
8.1.4uwire
8.1.5supply0、supply1
8.1.6驱动强度
8.1.7默认net
8.2变量(variable)
8.3线网和变量的区别
8.4向量(vector)
8.5数组(array)
8.6多维数组
第9章表达式
9.1操作符(Operator)
9.1.1操作符的优先级(Operatorpriority)
9.1.2表达式中使用整数
9.1.3算数操作符(Arithmeticoperators)
9.1.4算术表达式中的regs和integers
9.1.5比较操作符(Compareoperators)
9.1.6逻辑操作符(Logicaloperators)
9.1.7位运算操作符(Bitwiseoperators)
9.1.8归约操作符(Reductionoperators)
9.1.9移位操作符(Shiftoperators)
9.1.10条件操作符(Conditionaloperator)
9.1.11连接操作符(Concatenations)
9.2操作数(Operands)
9.2.1向量的抽取(bit—selectandpart—select)
9.2.2part—select的例子
9.2.3数组的访问
9.2.4字符串
9.3表达式位长(Expressionbitlengths)
9.3.1表达式位长规则
9.3.2表达式位长问题的例子A
9.3.3表达式位长问题的例子B
9.3.4表达式位长问题的例子C
9.3.5表达式位长问题的例子D
9.3.6表达式位长问题的例子E
9.4符号表达式(Signedexpressions)
9.4.1表达式类型规则
9.4.2计算表达式的步骤
9.4.3执行赋值的步骤
9.4.4signed表达式中处理x和z
9.4.5signed应用的例子
9.4.6signed应用的错误
9.5赋值和截断(Assignmentsandtruncation)
9.6与x/z比较
第10章赋值操作
10.1连续赋值
10.2过程赋值
第11章门级和开关级模型
11.1门和开关的声明语法
11.1.1门和开关类型
11.1.2驱动强度
11.1.3延迟
11.1.4实例数组
11.2and、nand、nor、or、xor、xnor
11.3buf、not
11.4bufif1、bufif0、notif1、notif0
11.5MOSswitches
11.6Bidirectionalpassswitches
11.7pullup、pulldown
第12章用户定义原语
12.1UDP定义
12.1.1UDP状态表
12.1.2状态表符号
12.2组合UDP
12.3电平敏感时序UDP
12.4沿敏感时序UDP
第13章行为模型
13.1概览
13.2过程赋值
13.2.1阻塞赋值
13.2.2非阻塞赋值
13.3过程连续赋值
13.3.1assign和deassign过程语句
13.3.2force和release过程语句
13.4条件语句
13.5循环语句
13.5.1for循环例子
13.5.2disable语句
13.6过程时序控制
13.6.1延迟控制(Delaycontrol)
13.6.2事件控制(Eventcontrol)
13.6.3命名事件(Namedevents)
13.6.4事件or操作符(Eventoroperator)
13.6.5隐含事件列表(Implicitevent_expressionlist)
13.6.6电平敏感事件控制(Level—sensitiveeventcontrol)
13.6.7赋值间时序控制(Intra—assignmenttimingcontrols)
13.7块语句
13.7.1顺序块(Sequentialblock)
13.7.2并行块(Parallelblock)
13.7.3块名字(Blocknames)
13.7.4开始和结束时间(Startandfinishtimes)
13.8结构化过程
13.8.1initialconstruct
13.8.2alwaysconstruct1
13.8.3always的敏感列表
13.8.4并发进程
13.9always有关的问题
13.9.1敏感列表不完整
13.9.2赋值顺序错误
第14章case语句
14.1case语句定义
14.2case语句的执行
14.3Verilog和VHDL对比
14.4case的应用
14.5casez的应用
14.6描述状态机
14.7casex的误用
14.8casez的误用
14.9full_case和parallel_case
14.10full_case
14.10.1不是full的case语句
14.10.2是full的case语句
14.10.3使用full_case综合指令
14.10.4full_case综合指令的缺点
14.10.5使用full_case指令后还是生成Latch
14.11parallel_case
14.11.1不是parallel的case语句
14.11.2是parallel的case语句
14.11.3使用parallel_case综合指令
14.11.4parallel_case综合指令的缺点
14.11.5没有必要的parallel_case指令
14.12综合时的警告
14.13case语句的编码原则
第15章task和function
15.1task和function之间的不同点
15.2task的声明和使能
15.2.1task的声明
15.2.2task的使能和参数传递
15.2.3task的内存使用和并发进程
15.3disable语句
15.3.1disable语句的例子A
15.3.2disable语句的例子B
15.4function的声明和调用
15.4.1function的声明
15.4.2function的返回值
15.4.3function的调用
15.4.4function的规则
15.4.5constantfunction
15.5task的误用
15.6function的误用
第16章调度和赋值
16.1仿真过程
16.2事件仿真
16.3仿真参考模型
16.4分层事件队列
16.4.1事件队列分类
16.4.2事件队列特性
16.4.3事件调度例子
16.5确定性和不确定性
16.5.1确定性(Determinism)
16.5.2不确定性(Nondeterminism)
16.6赋值的调度含义
16.6.1连续赋值
16.6.2过程连续赋值
16.6.3阻塞赋值
16.6.4非阻塞赋值
16.6.5开关处理
16.6.6端口连接
16.6.7任务和函数
16.7阻塞赋值和非阻塞赋值
16.7.1阻塞赋值
16.7.2非阻塞赋值
16.8赋值使用原则
16.9自己触发自己
16.10仿真零延迟RTL模型
16.11惯性延迟和传输延迟
16.11.1门级仿真中的传输延迟
16.11.2各种#delay的位置
16.11.3仿真时钟生成方法
16.12延迟线模型
16.13使用#1延迟
16.14多个公共时钟和竞争条件
16.15避免混杂阻塞赋值和非阻塞赋值
16.16RTL和门级混合仿真
16.16.1RTL—to—Gates仿真
16.16.2Gates—to—RTL仿真
16.16.3有时钟偏差的门级时钟树
16.16.4有时钟偏差的Vendor模型
16.16.5错误的Vendor模型
16.16.6结论和建议
16.17带有SDF延迟的门级仿真
16.17.1全系统仿真
16.17.2软件要花钱
16.17.3门级回归仿真
16.18验证平台技巧
16.18.1在0时刻复位
16.18.2时钟沿之后复位
16.18.3创建仿真时钟
16.18.4在无效沿输入激励
第17章层次结构
17.1模块
17.1.1模块定义
17.1.2模块实例
17.2参数
17.2.1参数声明
17.2.2参数调整
17.2.3参数传递
17.2.4参数依赖
17.2.5内部参数
17.2.6clog2
17.2.7指数**
17.3端口
17.3.1端口声明
17.3.2端口连接
17.3.3实数传递
17.4Generate语句
17.4.1Loopgenerateconstruct
17.4.2Conditionalgenerateconstruct
17.5实例数组
17.6层次名字
第18章系统任务和函数
18.1显示任务
18.1.1显示和写出任务
18.1.2探测任务
18.1.3监控任务
18.2文件读写
18.2.1打开和关闭文件
18.2.2文件输出
18.2.3字符串输出
18.2.4文件输入
18.2.5文件定位
18.2.6刷新输出
18.2.7错误状态
18.2.8检查文件尾部
18.2.9加载文件数据
18.3时间比例
18.3.1$printtimescale
18.3.2$timeformat
18.4仿真控制
18.4.1$finish
18.4.2$stop
18.5仿真时间
18.6转换函数
18.7概率分布
18.7.1$random
18.7.2$dist_functions
18.8命令行输入
18.8.1$test$plusargs
18.8.2$value$plusargs
18.9数学运算
18.9.1整数函数
18.9.2实数函数
18.10波形记录
第19章编译指令
19.1`celldefine和`endcelldefine
19.2`default_nettype
19.3`define和`undef
19.4`ifdef、`else、`elsif、`endif、`ifndef
19.5`include
19.6`resetall
19.7`line
19.8`timescale
19.9`unconnected_drive和`nounconnected_drive
19.10`begin_keywords和`end_keywords
19.11`pragma
第20章Specify块
20.1specify块声明
20.2speparam
20.3模块路径声明
20.3.1模块路径要求
20.3.2简单路径
20.3.3沿敏感路径
20.3.4状态依赖路径
20.4模块路径延迟
第21章时序检查
21.1概览
21.2使用稳定窗口的时序检查
21.2.1$setup、$hold、$setuphold
21.2.2$recovery、$removal、$recrem
21.3时钟和控制信号的时序检查
21.3.1$skew、$timeskew、$fullskew
21.3.2$width
21.3.3$period
21.3.4$nochange
21.4使用notifier响应时序违反
21.5使用条件事件
21.6时序检查中的Vector
21.7Negativetimingcheck
第22章反标SDF
22.1SDF标注器
22.2SDFconstruct到Verilog的映射
22.2.1SDF路径延迟到Verilog的映射
22.2.2SDF时序检查到Verilog的映射
22.2.3SDF互连延迟的标注
22.3$sdf_annotate
22.4SDF文件例子
第23章编程语言接口
23.1DirectC
23.2SystemVerilog
第24章综合指令
24.1Synopsys综合指令
24.2使用综合指令
24.3使用translate_off/on
24.4误用translate_off/on
24.5使用attribute
……
第三部分书写文档
第四部分高级设计
第五部分时钟和复位
第六部分验证之路
第七部分其他介绍
参考文献
关于版权

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Verilog编程艺术
    • 名称
    • 类型
    • 大小

    联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon