您好,欢迎光临有路网!
Verilog编程艺术
QQ咨询:
有路璐璐:

Verilog编程艺术

  • 作者:魏家明
  • 出版社:电子工业出版社
  • ISBN:9787121220616
  • 出版日期:2013年12月01日
  • 页数:433
  • 定价:¥79.00
  • 猜你也喜欢

    分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书深入地探讨了Verilog编程,分为七个部分:设计原则、语言特性、书写文档、**设计、时钟和复位、验证之路、其他介绍。本书对这些部分做了**的探讨:Verilog编码风格、Verilog-2001的新特性、简洁**的编程、容易出错的语言元素、可配置设计、时钟生成、复位设计、验证方法等。另外,本书还对SystemVerilog做了简单的介绍。 Verilog编程艺术_魏家明 编_电子工业出版社_
    文章节选
    程序设计是一门艺术”这句话有两个意思:一方面是说,程序设计像艺术设计一样,深不可测,奥妙无穷;另一方面是说,程序员像艺术家一样,也有发挥创造性的无限空间[梁肇新]。
    Donald Knuth认为“计算机科学”不是科学,而是一门艺术。它们的区别在于:艺术是人创造的,而科学不是;艺术是可以无止境提高的,而科学不能;艺术创造需要天赋,而科学不需要。所以Donald Knuth把他的4卷本巨著命名为《计算机程序设计艺术》(The Art of Computer Programming)。
    Donald Knuth不仅是计算机学家、数学家,而且是作家、音乐家、作曲家、管风琴设计师。他的独特的审美感决定了他的兴趣广泛、富有多方面造诣的特点,他的传奇般的生产力也是源于这一点。对于Donald Knuth来说,衡量一个计算机程序是否完整的标准不仅仅在于它是否能够运行,他认为一个计算机程序应该是雅致的,甚至可以说是美的。计算机程序设计应该是一门艺术,一个算法应该像一段音乐,而一个好的程序应该如一部文学作品一般。
    Bjarne Stroustrup,C++语言***,说“我喜欢优雅和**的代码。代码逻辑应当直截了当,让缺陷难以隐藏;应当减少依赖关系,使之便于维护;应当依据分层战略,完善错误处理;应当把性能调至*优,省得引诱别人做没规矩的优化,搞出一堆混乱来”。他特别使用“优雅”一词来说明“令人愉悦的优美、精致和简单”[Robert C. Martin]。
    一个人的美学观点会影响他的程序设计,因为Knuth有这么多的艺术爱好,所以他把程序设计看成艺术设计,在程序设计中要体现出程序的美。同样,当Bjarne Stroustrup编写优雅且**的代码的时候,他也是在程序设计中寻求美。
    我的美学观点是简单和谐、整洁有序;某导演的美学观点是宏大华丽、空洞无味;还有些人的美学观点是乱七八糟、凑合了事;你的美学观点是什么呢?有些人很自负,感觉良好,以为领悟到了编程的真谛,看到代码可以运行,就洋洋得意,可是却对自己造成的混乱熟视无睹。那堆“可以运行”的程序,就在眼皮底下慢慢腐坏,然后废弃扔掉。
    因为Verilog编程就是一种程序设计,所以Verilog编程也应该像设计艺术作品一样,要仔细打磨、精雕细琢,要经历痛苦与无奈,也要经历快乐与自得。设计要有自己的方法论,要体现自己的奇思妙想,要让自己的设计有更长的生命力,而不是豆腐渣工程。
    为什么那么多人对Apple的手机和计算机情有独钟?因为它们都是美的设计,因为它们的设计者都在追求美。同理,我们在做Verilog编程的时候也要追求美,也要设计出美的Verilog程序。
    目录
    **部分 设 计 原 则
    第1章 美的设计 2
    1.1 美学观点 2
    1.2 美是修养 3
    1.3 专业术语 4
    第2章 **之道 5
    2.1 敏捷开发 5
    2.2 代码质量 6
    2.3 版本控制 7
    2.4 提早集成 7
    第3章 组织管理 9
    3.1 植物分类 9
    3.2 SoC特性 11
    3.3 设计流程 12
    3.4 仔细规划 12
    3.5 管理表格 13
    3.6 模块层次 14
    3.7 目录组织 14
    第4章 使用工具 19
    4.1 使用Emacs 19
    4.2 使用Shell 24
    4.3 使用CVS 26
    第5章 编码风格 31
    5.1 干干净净 32
    5.2 代码划分 32
    5.3 代码要求 33
    5.4 名字定义 40
    5.5 书写格式 42
    5.6 添加注释 49
    5.7 参数化 50
    5.8 lint检查 52
    第二部分 语 言 特 性
    第6章 Verilog特性 54
    6.1 Verilog标准 54
    6.2 抽象级别 54
    6.3 可综合子集 55
    6.4 保持一致 57
    第7章 常数 58
    7.1 整数(integer) 58
    7.2 实数(real) 60
    7.3 字符串(string) 60
    7.4 标识符(identifier) 60
    第8章 数据类型 61
    第9章 表达式 67
    第10章 赋值操作 86
    10.1 连续赋值 86
    10.2 过程赋值 87
    第11章 门级和开关级模型 88
    第12章 用户定义原语 92
    12.1 UDP定义 92
    12.2 组合UDP 93
    12.3 电平敏感时序UDP 93
    12.4 沿敏感时序UDP 94
    第13章 行为模型 97
    13.1 概览 97
    13.2 过程赋值 98
    13.3 过程连续赋值 102
    13.4 条件语句 104
    13.5 循环语句 105
    13.6 过程时序控制 108
    13.7 块语句 113
    13.8 结构化过程 116
    13.9 always有关的问题 118
    第14章 case语句 120
    第15章 task和function 137
    第16章 调度和赋值 151
    16.1 仿真过程 151
    16.2 事件仿真 151
    16.3 仿真参考模型 152
    16.4 分层事件队列 153
    16.5 确定性和不确定性 157
    16.6 赋值的调度含义 158
    16.7 阻塞赋值和非阻塞赋值 160
    16.8 赋值使用原则 161
    16.9 自己触发自己 162
    16.10 仿真零延迟RTL模型 163
    16.11 惯性延迟和传输延迟 165
    16.12 延迟线模型 170
    16.13 使用#1延迟 171
    16.14 多个公共时钟和竞争条件 172
    16.15 避免混杂阻塞赋值和非阻塞赋值 173
    16.16 RTL和门级混合仿真 176
    16.17 带有SDF延迟的门级仿真 183
    第17章 层次结构 188
    17.1 模块 188
    17.2 参数 188
    17.3 端口 194
    17.4 Generate语句 196
    17.5 实例数组 201
    17.6 层次名字 203
    第18章 系统任务和函数 205
    18.10 波形记录 224
    第19章 编译指令 225
    第20章 Specify块 231
    20.1 specify块声明 231
    20.2 speparam 231
    20.3 模块路径声明 232
    20.4 模块路径延迟 235
    第21章 时序检查 237
    21.1 概览 237
    21.2 使用稳定窗口的时序检查 237
    21.3 时钟和控制信号的时序检查 240
    21.4 使用notifier响应时序违反 241
    21.5 使用条件事件 242
    21.6 时序检查中的Vector 243
    21.7 Negative timing check 243
    第22章 反标SDF 246
    22.1 SDF标注器 246
    22.2 SDF construct到Verilog的映射 246
    22.3 $sdf_annotate 249
    22.4 SDF文件例子 250
    第23章 编程语言接口 252
    23.1 DirectC 252
    23.2 SystemVerilog 252
    第24章 综合指令 253
    第三部分 书 写 文 档
    第25章 书写文档 260
    25.1 文档格式 260
    25.2 定义文档 261
    25.3 应用文档 262
    25.4 设计文档 262
    25.5 备份文档 263
    25.6 GPIO设计 263
    第26章 GPIO应用文档 264
    26.1 Overview 264
    26.2 Register Description 264
    26.3 Program Guide 269
    第27章 GPIO设计文档 271
    27.1 文件列表(见表27-1) 271
    27.2 端口列表(见表27-2) 271
    27.3 配置参数(见表27-3) 272
    第四部分 高 级 设 计
    第28章 使用IP 274
    第29章 代码优化 278
    29.1 代码可读 278
    29.2 简洁编码 279
    29.3 优化逻辑 281
    29.4 优化迟到信号 281
    29.5 括号控制结构 282
    第30章 状态机设计 283
    30.1 状态机类型 283
    30.2 状态编码方式 283
    30.3 二进制编码FSM 284
    30.4 独热码编码FSM 286
    30.5 寄存器输出 287
    第31章 可配置设计 289
    31.1 格雷码转换 289
    31.2 通用串行CRC 290
    31.3 FIFO控制器 293
    31.4 RAM Wrapper 例子 296
    31.5 可配置的GPIO设计 308
    31.6 可配置的BusMatrix 320
    31.7 可配置的Andes Core N801 333
    31.8 可配置的ARM926EJS 334
    31.9 灵活的coreConsultant 336
    第32章 可测性设计 337
    32.1 内部扫描 337
    32.2 内建自测 339
    32.3 边界扫描 340
    第五部分 时钟和复位
    第33章 异步时序 342
    33.1 亚稳态 342
    33.2 MTBF 343
    33.3 同步器 344
    33.4 同步多位数据 347
    33.5 异步FIFO 348
    33.6 Design Ware 348
    33.7 DW_fifoctl_s2_sf 349
    33.8 门级仿真 351
    第34章 时钟生成 352
    34.1 同步电路 352
    34.2 设计原则 353
    34.3 分频器 353
    34.4 时钟切换 355
    34.5 时钟生成 358
    第35章 时钟例子 362
    第36章 复位设计 374
    第六部分 验 证 之 路
    第37章 验证之路 396
    37.1 整洁验证 397
    37.2 验证目标 398
    37.3 验证流程 398
    37.4 验证计划 398
    37.5 随机验证 399
    37.6 直接验证 399
    37.7 白盒验证 399
    37.8 模块验证 400
    37.9 系统验证 400
    37.10 DFT验证 402
    37.11 网表验证 402
    37.12 **抽象 403
    37.13 灵活验证 405
    37.14 ARM926EJS的Validation环境 406
    37.15 AHB BusMatrix的验证 411
    37.16 某芯片的SoC验证环境 411
    第七部分 其 他 介 绍
    第38章 SystemVerilog特性 414
    参考文献 431
    关于版权 432
    编辑推荐语
    本书更加注重Verilog编程的方法论和实用性,深入地探讨编码风格、语言特性、简洁**和时钟复位等实际问题,深入探讨如何避免使用易混淆和易错误的语句,如何避免前后仿真不一致,如何充分发挥Verilog-2001的特性。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外