这篇是计算机类的优质预售推荐>>>>《Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误》

编辑推荐

纠错式学习,从“陷阱”中学习编程,加深对语言本身的理解。

逆向式学习,从错误中学习避免错误的方法。让读者写出更好的代码。

案例式学习,将101个“陷阱”分类汇编,以针对性案例引导读者掌握编程要点。

译者序

译者序

  随着电子设计自己主动化(Electronic Design Automation,EDA)技术的广泛应用。使用硬件语言完毕现场可编程门阵列(Field-Programmable Gate Array。FPGA)是大势所趋。迄今为止,基本的硬件描写叙述语言包含VHDL、Verilog HDL和SystemVerilog。

相比于后两者。VHDL发展更早,语法更为严格,因而对刚開始学习的人来说上手较慢,在实际使用中常常由于不规范的代码遭遇编译报错。相比而言,Verilog及SystemVerilog具有语法灵活的优势。当然也会因这样的灵活性在综合过程中产生程序猿意料之外的结果。眼下,相比于VHDL,Verilog和其高级版本号的SystemVerilog应用更为广泛。

这是由于在集成电路(Integrated
Circuit。IC)设计领域。90%以上的公司都採用Verilog进行IC设计。因此对集成电路设计(Application Specific Integrated Circuit, ASIC)人员来说。必须掌握Verilog。另外,因为Verilog和C语言有非常多类似的语法和keyword。鉴于C语言普及人群广泛,Verilog更能使刚開始学习的人突破语言障碍,高速入门。

正如我们提到的。Verilog因为其固有的灵活性。便于刚開始学习的人入门。而也正因于此,过于灵活的语法常常会使project师们陷入不当使用Verilog的陷阱,从而造成意料之外的错误。

  本书是由Verilog和SystemVerilog方面的资深专家依据自身实际project经验倾心撰写的一本有用的Verilog和SystemVerilog手冊。本书给出了硬件project师在使用Verilog和SystemVerilog时easy陷入的101个陷阱。

  本书的翻译工作主要由戴成然和高镇完毕。当中戴成然完毕了前言和第1~4章的翻译,高镇完毕了第5~8章的翻译。因为译者水平有限。文中难免出现不妥之处。敬请读者批评指正。

  高镇

  2015年3月

序言

序 

  人的爱好各有不同,有人喜欢收集棒球卡片,有人喜欢收集老旧的汽车杂志,也有人喜欢收集橡皮鸭子,而我喜欢收集Verilog方面的书籍。

  这要追溯到1989年一本用三孔夹夹着的活页《VERILOG-XL Reference Manual Version 1.5a》复印版。当时的Verilog相对简单——令人难以相信的是,现现在已经能够用一种类型的程序分配来设计芯片(在当时非堵塞式分配还不是一种语言)。不仅如此,当时我们仅仅能在VAX或阿波罗工作站上仿真。

  从那时起,我差点儿买下了关于Verilog的每一本书。我所写过的书中已经包括了一些综合性的书。

将来我将写一本VHDL的必备手冊。又或者是一本介绍硬件描写叙述性语言历史的书,当然书的内容大多是有关Verilog的。

  对于这些书。有一件有趣的事儿。在我翻阅它们后,就会把它们放在架子上。非常少再次翻阅。我承认当你看到我装满Verilog书的书架时,你会对此留下非常深的印象。目光敏锐的客人会注意到我的书是崭新的。

确实。我没用过它们,没读过它们,由于它们对我帮助非常少。

  令人失望的是。我非常难找到一本相应用project师有用的书。我想要的是一本每天带在身边,及时和有效地助我迈出第一步的书。

  Stu和Don编著了本书。我们认识非常多年了,他们在Verilog上有非常深的造诣。他们将毕生所学的精华总结成这本非常有用的书。本书一定不会让你失望。

  假设你是一个通过慘痛教训而跳出Verilog陷阱的内行,微笑着对自己说:“太好了,我以前在这出过问题。”

  欢迎刚開始学习Verilog和SystemVerilog的朋友们!

通过阅读本书,你能够拥有向这个领域的两个顶级专家学习的机会。

假设你有机会參加这两位专家中随意一位的课程,一定要报名。

我保证你不会懊悔。

  顺便提一下,我最喜欢的陷阱是“陷阱65:死循环”。由于我以前犯过这种错误。相信我。假设你以前由于建模错误致使打坏计算机,那么这辈子你都不会忘记错误的原因。

但是你比我幸运,由于本书能够帮助你。将这本书放在手边。常常翻阅,那么你的模型都能够通过编译,循环都能够终止。

  Steve Golson

Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误的更多相关文章

  1. 对比 Verilog 和 SystemVerilog 中的基本数据类型

    作为引子,首先来看一段描述,该段介绍了SystemVerilog对比Verilog在RTL设计和建模时的新特性之一(logic数据类型),然后下文我再展开对比介绍Verilog和SystemVeril ...

  2. Socket编程, 在server端read()函数调用后显示错误:Transport endpoint is not connected (犯了低级错误)

    for(;;){ socklen_t len = sizeof(client_address); connfd = accept(listenfd, (struct sockaddr *)&c ...

  3. Java中try catch finally语句中含return语句的执行情况总结-编程陷阱

    前言:有java编程基础的人对java的异常处理机制都会有一定了解,而且可能感觉使用起来也比较简单,但如果在try catch finally语句块中遇到return语句,开发者可能就会遇到一些逻辑问 ...

  4. Java编程陷阱-类成员初始化

    原文地址:http://blog.csdn.net/veryitman/article/details/6450523 如果你忽略Java的细节,恐怕你的代码会充满bug,下面讨论关于类成员初始化问题 ...

  5. 高并发编程陷阱之check and set

    今天公司CTO跟隔壁部门开技术会,旁听了一下.所讲的内容感觉好高大上啊!简单记录一下 场景是这样的: if(check(id)===true) { }else{ set(id); } 什么意思呢? 就 ...

  6. 基于verilog的FPGA编程经验总结(XILINX ISE工具)

    1.用ISE仿真的时候.所用变量一定要初始化. ISE默认初始量为"XXXXX", 而Quarters是默认为"00000"的, 其实实际上, 下到FPGA里后 ...

  7. HAL驱动的串口编程陷阱

    http://bbs.elecfans.com/jishu_464356_1_1.html 手上有块NUCLEO STM32L053x板子,用来做串口实验,看了下ST的最新库HAL驱动,于是想用HAL ...

  8. 《Java编程思想》笔记 第十二章 通过异常处理错误

    1.异常也是对象 标准异常类都有两个构造器,一个默认,一个接受字符串. 抛异常与方法返回类型不同,但有相似效果使当前方法退出并返回,抛异常可以看作是一种不同的返回机制.(异同点不必深究) Throwa ...

  9. iOS网络高级编程:iPhone和iPad的企业应用开发之错误处理

    本章内容 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWluZ2h1YXdlbmthbmc=/font/5a6L5L2T/fontsize/400/fi ...

随机推荐

  1. NHibernate学习(零)-本次学习遇到的错误汇总

    问题一: "System.TypeInitializationException"类型的未经处理的异常在 KimismeDemo.exe 中发生 其他信息: "NHibe ...

  2. Java—RequestMapping相关用法

    RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.它有6个属性:1.value:指定请求的具体地址:valu ...

  3. fieldset ----- 不常用的HTML标签

    fieldset 元素可将表单内的相关元素分组. <fieldset> 标签将表单内容的一部分打包,生成一组相关表单的字段. 当一组表单元素放到 <fieldset> 标签内时 ...

  4. JS高级——浏览器的线程

    基本概念 1.js的执行过程是单线程的模式,也就是同步进行,只有前面的代码执行完了才会往下面执行 2.但是执行js代码也只是浏览器的线程之一所负责的事情,这个线程被称为js引擎,浏览器还具有其他线程: ...

  5. 3星|《商业周刊中文版:2017商业人物(下)》:酒店才应该是出行住宿的最佳选择,Airbnb不是

    商业周刊/中文版:2017商业人物(下) 对一些知名商业人物的访谈的合辑. 总体评价3星,有一些参考价值. 以下是本期一些内容的摘抄: 1:段永平是一位隐秘的亿万富豪,去年,他创立的智能手机姊妹品牌O ...

  6. C#使用Win32函数的一些类型转换

    C#在访问Win 32 Api时需要处理C 结构与C#结构的映射,这在MSDN以及许多Blog上都可以找到参考的资料.Win 32 中有一些定义复杂的Struct,这些结构体拥有长度固定的数组或者一些 ...

  7. python os os.path模块学习笔记

    #!/usr/bin/env python #coding=utf-8 import os #创建目录 os.mkdir(r'C:\Users\Silence\Desktop\python') #删除 ...

  8. spring IOC bean中注入集合

    建立一个实体 package com.java.test4; import java.util.*; /** * @author nidegui * @create 2019-06-22 14:45 ...

  9. (5.2.1)配置服务器参数——即时文件初始化(IFI)

    关键词:零填充,即时文件初始化 转自:https://www.cnblogs.com/gaizai/p/3516905.html 概念: 所有新申请的空间,sql server都要以0来填充完磁盘文件 ...

  10. php第二十一节课

    AJAX <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...