7梦a22616.1二线制ICCMOS串行EEPROM的简单介绍22616.2IC总线特征介绍22716.3二线制ICCMOS串行EEPROM的读写操作22816.4EEPROM的VerilogHDL程序总251结251患考题252第17章简化的RISC_CPU设计252概述:25217.1课题的来由和设计环境介绍·25317.2什么是CPU25317.3RISC_CPU结构25517.3.1时钟发生器..25717.3.2指令寄存器·25817.3.3累加器…25917.3. 4算术运算器.26017.3.5数据控制器…26117.3.6地址多路器26117.3.7程序计数器26217.3.8状态控制器·26817.3. 9外围模块.26917.4RISC_CPU操作和时序26917.4.1系统的复位和启动操作27017.4. 2总线读操作27117.4.3总线写操作.27117.5RISC_CPU寻址方式和指令系统27217.6RISC_CPU模块的调试272RISC_CPU模块的前仿真17.6.128617.6.2RISC_CPU模块的综合.29217.6.3RISC_CPU模块的优化和布局布线302小结…303思考题虚拟器件/接口、IP和基于平台的设计方法及其在大型数字系统设计中的作用第18章304304概述30418.1、软核和硬核、宏单元、虚拟器件、设计和验证IP以及基于平台的设计方法·.30618.2设计和验证IP供应商30718.3虚拟模块的设计·31118.4虚拟接口模块的实例
8Verilog数字集镜银计教程(第2版)小结312思考题312..第三部分设计示范与实验练习313概述314简单的组合逻辑设计。练习一316简单分赖时序逻辑电路的设计练习二318利用条件语句实现计数分频时序电路.练习三320练习四阻塞赋值与非阻塞赋值的区别322用always块实现较复杂的组合逻辑电路练习五324在VerilogHDL中使用函数练习六326在VerilogHDI中使用任务(task)练习七329利用有限状态机进行时序逻辑的设计练习八332练习九利用状态机实现比较复杂的接口设计337通过模块实例调用实现大型系统的设计:练习十.343练习十一简单卷积器的设计357附录A/D转换器的VerilogHDL模型机所需要的技术参数2K*8位异步CMOS静态RAMHM-65162模型361附录二366练习十二利用SRAM设计一个FIFO.法篇语第四部分376语法篇1关于VerilogHDL的说明376一、关于IEEE1364标准377二,Verilog简介:377三、语法总结379四、编写VerilogHDL源代码的标准381五、设计流程·382语法篇2Verilog硬件描述语言参考手册·382一、VerilogHDL语句与常用标志符(按字母顺序排列)448二、系统任务和函数(Systemtaskandfunction)452三、常用系统任务和函数的详细使用说明463四、CommandLineOptions命令行的可选项464五、IEEEVerilog1364-2001标准简介478参考文献
1绪论我们知道构成数字逻辑系统的基本单元是与门、或门和非门,它们都是由三极管、二极管和电阻等器件构成,并能热行相应的开关逻辑操作:写门、或门和非门文可以构成各种触发器,实现状态记忆。在效学电路基础课程中,在了解这些逻辑门和触发器的构成和原理后,把它们作为抽象的理想器件来考,学习如何用布尔代数和卡诺图简化方法来设计一些简单的组合逻辑电路和时序电路。这些基础知识从理论上了解一个复杂的数字系统,例如CPU等都可以由这些基本单元组成。但真正如何来设计一个极其复杂的数字系统,如何验证设计的逻辑系统功能是否正确呢!本教程就是讲解如何利用Verilog硬件描述语言来设计和验证这样一个复杂数字系统的方法。下面就复杂数字系统的概念、用途和几个有关的基本问题做一些说明。1,为什么要设计专用的复杂数字系统现代计算机与通信系统的电子设备中广泛使用了数字信号处理专用集成电路,它们主要用于数字信号传输中必需的滤波、变换、加密、解密、编码、解码、纠检错、压缩和解压缩等操作。这些操作从本质上说都是数学运算,但是又完全可以用计算机或微处理器来完成。这就是为什么常用C、Pascal或汇编语言来编写程序,以研究算法的合理性和有效性的道理。在数字信号处理的领域内有相当大的一部分工作是可以事后处理的,即利用通用的计算机系统来处理这类问题。如在石油地质调查中,通过钻探和一系列的爆破,记录各种地层的回波数据,然后去除噪声等无用信息,并用计算机对这些数据进行处理,最后得到地层的构造,从而找到埋藏的石油。因为地层不会在几年内有明显的变化,因此花数十天乃至更长的时间把地层的构造分析清楚也能满足要求。这种类型的数字信号处理是非实时的,在通用的计算机上通过编写、修改和运行程序,分析程序运行的结果就能满足需要。还有一类数字信号处理必须在规定的时间内完成,例如在军用无线通信系统和机载雷达系统中常需要对检测到的微弱信号进行增强、加密、编码、压缩,而在接收端必须及时地解压缩、解码和解密并重现清晰的信号。很难想像用一个通用的计算机系统来完成这项工作。因此,不得不自行设计非常轻便而小巧的高速专用硬件系统来完成该任务。有的数字信号处理对时间的要求非常苛刻,以至于用高速的通用微处理器芯片也无法在规定的时间内完成必要的运算。因此,必须为这样的运算设计一个专用的高速硬线逻辑电路,在高速FPGA器件上实现或制成高速专用集成电路。这是因为通用微处理器芯片是为一般目的而设计的,运算的步骤必须通过程序缩译后生成的机器码指令加载到存储器中,然后在微处理器芯片控制下,按时钟的节拍,逐条取出指令、分析指令和执行指令,直至程序的结束。微处理器芯片中的内部总线和运算部件也是为通用目的而设计,即使是专为信号处理而设计的通用微处理器,因为它的通用性,也不可能为某一个特殊的算法来设计一系列的专用的运算电路,而且其内部总线的宽度也不能随意改变,只有通过改变程序,才能实现这个特殊的算法,因而其运算速度也受到限制。本教程的目的是想通过对数字信号处理、计算、算法和数据结构、编程语言和程序、体系结
2Verilog数字系规设计教程(第2版)构和硬线逻辑等基本概念的介绍,了解算法与硬线逻辑之间的关系,从而引人利用VerilogHDL硬件描述语言设计复杂的数字逻辑系统的概念和方法。向读者展示一种20世纪90年代才真正开始在美国等先进的工业化国家逐步推广的数字逻辑系统的设计方法,借助于这种方法,在电路设计自动化仿真和综合工具的帮助下,只要对并行计算微体系结构有一定程度的了解,对有关算法有深人的研究,就完全有能力设计并制造出具有自已知识产权的DSP(数字信号处理)类和任何复杂的数字逻辑集成电路芯片,为我国的电子工业和国防现代化做出应有的贡献。2.数字信号处理大规模集成电路设计制造技术和数字信号处理技术,近30年来各自得到了迅速的发展。这两个表面上看来没有什么关系的技术领域实质上是紧密相关的。因为数字信号处理系统往往要进行一些复杂的数学运算和数据处理,并且又有实时响应的要求,它们通常是由高速专用数字逻辑系统或专用数字信号处理器所构成,通常包括高速数据通道接口和高速算法电路,其电路是相当复杂的。因此,只有在高速大规模集成电路设计制造技术进步的基础上,才有可能实现真正有意义的实时数字信号处理系统。对实时数字信号处理系统的要求不断提高,也推动了高速大规模集成电路设计制造技术的进步。现代专用集成电路的设计是借助于电子电路设计自动化(EDA)工具完成的。学习和掌握硬件描述语言(HD1.)是使用电子电路设计自动化(EDA)工具的基础。3.计算说到数字信号处理,自然会想到数学计算(或数学运算)。现代计算机和通信系统中广泛采用了数字信号处理的技术和方法。其基本思路是先把信号用一系列的数字来表示,把连续的模拟信号,通过采样和从模拟量到数字量的转换,把信号转换成一系列的数字信号,然后对这些数字信号进行各种快速的数学运算。其目的是多种多样的:有的是为了加密;有的是通过编码来减少误码率以提高信道的通信质量;有的是为了去掉噪声等无关的信息;有的是为了数据的压缩以减少占用的频道等。有时也把某些种类的数字信号处理运算称为变换,如离散傅里叶变换(DFT)、离散余弦变换(DCT)和小波变换(WaveletT)等这里所说的计算是从英语computing翻译过来的,它的含义要比单纯的数学计算广泛得多。“computing这门学问研究怎样系统地有步骤地描述和转换信息,实质上是一门覆盖了多个知识和技术范畴的学问,其中包括了计算的理论、分析、设计、效率和应用。它提出的最基本的问题是什么样的工作能自动完成,什么样的不能”“。本书中凡提到“计算”这个词处,指的就是上面一段中computing所包含的意思。由传统的观点出发,可以从三个不同的方面来研究计算,即从数学、科学和工程的不同角度。由比较现代的观点出发,可以从四个主要的方面来研究计算,即从算法和数据结构、编程语言、体系结构、软件和硬件设计方法来研究。本绪论的目的是想让读者对设计复杂数字系统有一个全面的了解,从而加深对掌握VerilogHDL设计方法必要性的认识。一个复杂的数字系统设计往往是一个从算法到由硬线连接的门级逻辑结构,再映射到硅片的逐步实现的过程。因此,我们将从算法和数据结构、编程语言和程序、微体系结构和硬线逻辑以及设计方法学等方面的基本概念出发来研究和探讨用于数字信号处理等领域的复杂硬线逻辑电路的设计技术和方法,特,插自Denning et al,"Computing as a Discipline,"Communication of ACM,January,1989
3储诊别强调利用Verilog硬件描述语言的TopDown设计方法的介绍。4.算法和数据结构为了准确地表示特定问题的信息并顺利地解决有关的计算问题,需要采用一些特殊方法并建立相应的模型。所谓算法就是解决特定问题的有序步骤,所谓数据结构就是解决特定问题的相应的模型。:5.编程语言和程序程序员利用一种由专家设计的既可以被人理解,也可以被计算机解释的语言来表示算法问题的求解过程。这种语言就是编程语言,由它所表达的算法问题的求解过程就是程序。而C、Pascal,Fortran、Basic语言或汇编语言是几种常用的编程语言。如果只研究算法,只在通用的计算机上运行程序或利用通用的CPU来设计专用的微处理器嵌入系统,掌握上述语言就足够了。如果还需要设计和制造能进行快速计算的硬线逻辑专用电路,就必须学习数字电路的基本知识和硬件描述语言。因为现代复杂数字逻辑系统的设计都是借助于EDA工具完成的,无论电路系统的仿真和综合都需要掌握硬件描述语言。在本书中将比较详细地介绍Verilog硬件描述语言。6.系统的微体系结构和硬线连接的门级逻辑计算电路究竟是如何构成的?为什么它能有效和正确地执行每一步程序?它能不能用另外一种结构方案来构成?运算速度还能不能再提高?所谓计算微体系结构就是回答以上问题,并从硬线逻辑和软件两个角度一起来探讨某种结构的计算机的性能潜力。比如,VonNeutmann(冯·诺依曼)于1945年设计的EDVAC电子计算机,它的结构是一种最早的顺序机,该机执行标量数据的计算机系统结构。顺序机是从位申行操作到字并行操作,从定点运算到浮点运算逐步改进过来的。由于VonNeumann系统结构的程序是顺序执行的,所以速度很慢。随着硬件技术的进步,不断有新的计算机体系结构产生,其计算性能也在不断提高。计算机体系结构是一门讨论和研究通用计算机的中央处理器如何提高运算速度性能的学问。对计算机中央处理器微体系结构的了解是设计高性能的专用的硬线逻辑系统的基础,因此本书将通过一个简化的RISC_CPU的设计实例对系统结构的基本概念加以初步的介绍。但由于本书的重点是利用VerilogHDL进行复杂数字电路的设计技术和方法,大量的篇幅将介绍利用HDL进行设计的步骤、语法要点、可综合的风格要点、同步有限状态机和由浅入深的设计实例。至于有关处理器微体系结构的深人了解和高速标量计算逻辑的微结构等专门知识和设计快窍,将在以后推出的新书中介绍。7.设计方法学复杂数字系统的设计是一个把思想(即算法)转化为实际数字逻辑电路的过程。我们知道,同一个算法可以用不同结构的数字逻辑电路来实现,这从运算的结果来说可能是完全一致的,但其运算速度和性能价格比可以有很大的差别。可用许多种不同的方案来实现实时完成算法运算的复杂数字系统电路。下面列出了常用的四种方案:第一种,以专用微处理机芯片为中心来完成算法所需的电路系统,第二种,用高密度的FPGA(从几万门到儿百万门)第三种,设计专用的大规模集成电路(ASIC);第四种,利用现成的微处理机的IP核并结合专门设计的高速ASIC运算电路。究竟采用什么方案要根据具体项目的技术指标、经费、时间进度和批量综合考虑而定