这篇是计算机类的优质预售推荐>>>>《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. PKUSC2017 游记 密码:blog密码

    退役之前,写点破事乐呵乐呵 省选滚大粗   报了PKU和THU的SC  果然THU直接审核不通过... 于是就来到了PKU   滚粗狗就又续命几天. Day1 上午考数学 喜闻乐见啥都不会 出来一对题 ...

  2. 用python语言写一个简单的计算器

    假如我们有这样一个式子: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2 ...

  3. 大数据~说说Hadoop

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.  Hadoop实现了一个分布式文件系 ...

  4. java基础之吃货联盟

    因为用的是普通数组,所以编写的代码可能比较长,而且有的功能还比较不健全,代码如下: 0.定义数组(因为用static修饰可以不用New,比较方便,但可能比较损耗性能) //订餐人名字 static S ...

  5. java中 数组 list map之间的互转

    三者之间转换关系,一张图清晰呈现. 上代码: 其中的maputils是apache的collection包. package util; import java.util.ArrayList; imp ...

  6. windows远程桌面连接

    服务器端: 1.我的电脑->管理->本地用户和组->用户->新建用户设置账号密码,隶属于administrator和remote user 2.我的电脑->属性-> ...

  7. CSS动画:旋转卡片效果

    <!DOCTYPE html> <html> <head> <title>demo</title> </head> <bo ...

  8. java_io学习_编码

    package io; public class encodingDemo{ public static void main(String[] args) throws Exception{ // T ...

  9. CDR X8图框精确剪裁在哪?

    对于CorelDRAW,刚从低版本升级为高版本的同学可能一下子理不清方向,因为在CorelDRAW X8中有很多功能命令做了整改和位置的变化.很多用户反映,CDR中的图框精确剪裁不见了,然而并不是该命 ...

  10. 零基础到精通Linux,从这篇文章开始

    2018年想做Linux运维的人应该如何学习才能快速精通Linux? Linux入门这么简单,为什么很多人学不会? 想要成为一个合格的运维工程师,到底怎么才能从零开始精通Linux? 作为一个运维小白 ...