zip

精通VerilogHDL:IC设计核心技术实例详解

  • 1星
  • 日期: 2021-02-25
  • 大小: 17.48MB
  • 所需积分:0分
  • 下载次数:14
  • favicon收藏
  • rep举报
  • free评论
标签: ic

就是集成电路,泛指所有的电子元器件,是在硅板上集合多种电子元器件实现某种特定功能的电路模块。它是电子设备中最重要的部分,承担着运算和存储的功能。集成电路的应用范围覆盖了军工、民用的几乎所有的电子设备。

由于半导体技术的不断提升,以及晶圆厂所需的建厂资金不断飚升,导致了晶圆代工的兴起,也为国内的Fabless  design  house设计的发展提供了温床。国内由于产业上下游完整,能直接针对下游的需求快速做出回应,加上有着训练有素的工程师,已成全世界IC设计产值的新兴大国。加上政府有心扶植,希望能提升我国电子业的技术水准,避免仅仅只是做代工的窘境,而在当前的校园里,VLSI  设计也成为热门学科。如何能快速提升设计效率,变成了当务之急的课题。传统采取的Schematic设计方法已不能符合快速Time  to  Market的需求。高级的硬件设计语言(HDL:  Hardware  Design  Language)因运而生。高级HDL设计方法的最大优点是可以通过EDA(Electrical  Design  Automation)  tool  来进行自动化的设计,从而实现许多以前难以达成的复杂功能。然而,国内相关书籍仍然不多,许多书籍仅简单介绍硬件设计语言,其内容较少有谈及实际的设计方法,其内含的范例相对也较为简单,这对于许多有志于此的学生或工程师而言是明显不够的。于是本书希望能从实际的角度,所附的范例都有相当的实用价值,以提升读者电路设计的观念和技巧,因此本书很适合有志于此的学生或工程师学习。随书光盘内容为本书实例源代码。

第1章  设计方法概认(Design  Methodology  Introduction)

1.1  Verilog  HDL硬件设计语言

1.2  设计流程(Design  Flow)

1.2.1  设计规格阶段(Design  Specification)

1.2.2  架构与设计划分阶段(Architecture&Design  Partition)

1.2.3  编程与测试环境设计阶段(RTL  Coding&Test  Bench)

1.2.4  集成和仿真阶段(Integration&Simulation)

1.2.5  综合阶段(Synthesis)

1.2.6  布局前仿真阶段(Pre-Layout  Simulation)

1.2.7  布局与布线阶段(  Auto  Placement  &Route,AP&R)

1.2.8  布局后仿真/静态时序分析/形式验证阶段(Post-Sim/STA/Formal  Verification)

1.2.9  DRC/LVS检查阶段

1.2.10  Design  Sing-off阶段

1.2.11  手动修正(Engineering  Change  Order,ECO)

1.3  程序设计风格(Coding  Style)

1.4  综合(Synthesis)

1.4.1  不可综合的Verilog  HDL描述

1.4.2  不可综合的运算符

1.4.3  操作条件(Operating  Condition)

1.4.4  Setup  Time  &  Hold  Time

1.4.5  元件库(Library)

1.4.6  时序约束(Timing  Constraints)

1.4.7  时钟信号综合  (Synthesis  for  Clock)

1.4.8  线路负载模型  (Wire  Load  Model)

1.4.9  设计规则检查(Design  Rule  Check,DRC)

1.4.10  综合的原则

1.4.11  综合扫描电路(Scan  Synthesis)

1.5  布局与布线(Auto  Placement  &  Route,AP&R)

1.5.1  布局的概念

1.5.2  Floorplan

1.5.3  Cut  Scan  Chain

1.5.4  Pre-Placement  Optimization

1.5.5  Placement

1.5.6  Placement  Optimization

1.5.7  CTS(Clock  Tree  Synthesis)

1.5.8  Connect  Scan  Chain

1.5.9  Post  Placement  &  CTS  Optimization

1.5.10Route

1.5.11  Chip  Utilization

1.5.12  PAD  Limited  &  Core  Limited

1.6  标准延迟文件(Standard  Delay  Format,SDF)

1.6.1  线路延迟(Interconnect  Delay)

1.6.2  元件延迟(Cell  Delay)

1.7  现场可编程门阵列(Field  Programming  Gate  Array,FPGA)

1.8  结构化ASIC(Structural  ASIC)

1.9  测试

1.9.良率(Yield  Rate)/缺陷比例(Defect  Levels)

1.9.2  测试的阶段

1.9.3  瑕疵(Fault)

1.9.4  测试向量(Test  Vector)

1.9.5  自动测试向量产生  (Auto  Test  Pattern  Generation,ATPG)

1.9.6  内存内建自我测试自动化(Built-In  Self  Test,BIST)

1.10  功率消耗(Power  Consumption)

1.10.1  如何利用综合器综合出低功率消耗的电路

1.10.2  功耗计算

1.11  本章习题

第2章  硬件设计语言(Hardware  Description  language)

2.1  设计层次(Design  Hierarchy)

2.2  模块(Module)

2.3  端口声明(Port  Declarations)

2.4  参数声明(Parameter  Ddeclarations)

2.5  include  directives

2.6  变量声明(Variable  Decalarations)

2.7  管脚对应规则(Port  Mapping  Rule)

2.8  输出输入管理脚规则(Port  Connecting  Rule)

2.9  测试平台(Test  Bench)

2.10  事件(Event)

2.11  仿真器(Simulator)

2.12  执行过程(Executing  Procedure)

2.12.1  initial  statement

2.12.2  always  statement

2.13  波形(Waveform)

2.14  空白与注释(Space&Comments)

2.15  数字单位(Number  of  Specification)

2.16  数值逻辑(Value  Logic)

2.17  数据类型(Data  Type)

2.17.1  接线(Net)

2.17.2  寄存器(Register)

2.17.3  整数与实数(Integer&Real)

2.17.4  时间(Time)

2.17.5  参数(Parameter)

2.17.6  数组(Array)

2.17.7  存储器(Memory)

2.17.8  字符串(String)

2.18  持续指定(Continuous  Assignment)

2.19  运算符(operator)

2.19.1  位运算符(Logical  Bit-wise  Operator)

2.19.2  逻辑运算符(Logical  operator)

2.19.3  等式运算符(Equality  Operator)

2.19.4  关系运算符(Relational  Operator)

2.19.5  移位运算符(Shift  Operator)

2.19.6  缩减运算符(Reduction  Operator)

2.19.7  算术运算符(Arithmetic  Operator)

2.19.8  拼接运算符(Concatenation  Operator)

2.19.9  条件运算符(Conditional  Operator)

2.19.10  运算符的优先级

2.20  三态缓冲器及双向信号(Tristate  Buffer  &  Bidirectional  signals)

2.21  设计实例

2.21.1  CASE1:3-8译器器

2.21.2  CASE2:BCD码/加3码转换器

2.21.3  CASE3:奇偶校验(Parity  Check)

2.21.4  CASE4:算术逻辑单元(ALU,Arithmetic  Logic  Unit)

2.21.5  CASE5:NRZI编码

2.22  本章习题

第3章  行为建模(Behavioral  Modeling)

3.1  过程赋值(Procedure  Assignment)

3.1.1  阻隔式赋值(Bolcking  Assignment)

3.1.2  非阻隔式赋值(Non-Blocking  Assignment)

3.2  时间延迟控制(Timing  Delay  Control)

3.3  门延迟(Gate  Delay)

3.4  详细的延迟模型

3.5  时间刻度(Timescale)

3.6  条件语句

3.7  case语句

3.8  if语句和case语句的比较

3.9  循环(Loops)

3.9.1  while循环

3.9.2  for循环

3.9.3  repeat循环

3.9.4  forever循环

3.10  wait语句

3.11  循序区块与并行区块

3.12  任务与函数(Task&Function)

3.12.1  任务(Task)

3.12.2  函数(Function)

3.12.3  任务与函数的比较

3.13  赋值(Assignment)

3.14  编译指令(Compiler  Directive)

3.15  信号提取(Signal  Extraction)

3.16  随机数产生器(Random  Number  Generator)

3.17  文件输出输入(File  I/O)

3.17.1  打开文件(Open  File)

3.17.2  写入文件(Write  to  Flie)

3.17.3  读取文件(Read  from  Flit  )

3.17.4  关闭文件(Close  File)

3.17.5  由文件设定存储器初值

3.18  仿真控制任务(Simulation  Control  Task)

3.19  读入sdf文件

3.20  enerate语句

3.21  除错实例分析

3.22  AMBA  Master设计实例

3.22.1  控制信号

3.22.2  程序代码

3.22.3  仿真波形

3.23  本章习题

第4章  同步设计(Synchronous  Design)

4.1  设计风格的重要性(Importance  of  Coding  Style)

4.1.1  CASE1:多重驱动(Mutiple  driven)

4.1.2  CASE2:正负沿混合设计(Mixed  rising  &falling  edge  trigger)

4.1.3  CASE3:多重时钟驱动

4.1.4  CASE4:不以if-else作为的condition区分

4.1.5  CASE5:  case语句里遗漏default的描述

4.1.6  CASE6:混合同步与异步Reset的语句

4.1.7  CASE7:对组合逻辑Reset

4.1.8  CASE8:不使用完整的敏感列表(Sen  sitivity  List)

4.1.9  CASE9:没有初始状态的程序状态机

4.1.10  CASE10:在模块与模块间使用Bi-drectional  Signal

4.2  资源共享(Resource  Sharing)

4.3  流水线(PipeLine)

4.4  设计实例

4.4.1  七段显示器设计实例

4.4.2  触发器(Flip-Flops)的设计

4.4.3  时钟信号分频(Clock  Divider)的设计

4.4.4  可以对任务数目分频的分频器

4.4.5  并行输入/串行输出(Parallel-In/Serial-out)的移位寄存器

4.4.6  串行输入/并行输出(Serial-In/Parallel-out)的移位寄存器

4.4.7  串行输入/串行输出(Serial-In/Serial-out)的移位寄存器

4.4.8  具有向上计数/向下计数(Up-Down  Count)功能的计数器

4.4.9  可以同步加载(SynchronousLoad)的向上计数寄存器

4.4.10  Johnson计数器

4.4.11  以D触发器(Flip-Flop)实现J-K触发器(Flip-Flop)

4.4.12  Mealy程序状态机(State  Machine)设计

4.4.13  Moore程序状态机设计——红绿灯控制电路

4.4.14  同步缓冲器设计(Synchronous  FIFO)

4.4.15  堆栈控制设计(Stack)

4.5  本章习题

第5章  异步(Asynchronous  Design)

5.1  同步设计与异步设计(Synchonous  &Non-Synchronous  design)

5.2  了解Latch

5.3  Timing  Borrow

5.4  为什么产生Latch

5.4.1  CASE1:综合电路产生Latch实例1(嵌套)

5.4.2  CASE2:综合电路产生Latch实例2(嵌套)

5.4.3  CASE3:语句导致Latch的实例

5.4.4  CASE4:因为敏感列表(Sensitivity  List)不全导致Latch的实例

5.5  以RTL综合Latch-based的存储器

5.6  跨越时钟域(Clock  Domain)的问题

5.7  亚稳太(Metastable)

5.8  异步接口设计实例

5.8.1  设计概念

5.8.2  程序代码

5.8.3  仿真波形

5.9  本间习题

第6章  功能性单元(Functional  Unit)

6.1  概述

6.2  Ripple-Carry加法器

6.3  Carry  Look-ahead加法器

6.4  CSA(Cary  Save  Adder)加法器

6.5  累加器(CSA  Accumulator)

6.6  Ripple减法器

6.7  乘法器(Multiplier)

6.7.1  移位相加乘法器

6.7.2  CSD(Canonic  Signed  Digit)数

6.7.3  Ripple乘法器

6.7.4  CSA乘法器

6.7.5  SRAM乘法器

6.8  LFSR(Linear  Feedback  Shift  Register)

6.9  CRC(Cyclic  Redundancy  Check)

6.10  4位CRC  (Cyclic  Redundancy  Check)

6.11  本章习题

第7章  I2C  Slave模型(I2C  Slave  Modeling)

7.1  规格说明

7.1.1  器件连接(Device  Connection)

7.1.2  位传输(Bit  Transfer)

7.1.3  协定的起始与终止(Start/Stop  Condition)

7.1.4  数据传输(Data  transfer)

7.1.5  时钟信号的同步(Clock  Synchronization)

7.1.6  仲裁(Arbitration)

7.2  程序设计概念

7.3  程序代码

7.4  仿真波形

第8章  微处理器设计实例(Microprocessor  Design)

8.1  CISC  vs.RISC

8.2  计算机架构简介

8.3  测试

8.4  执行结果

8.5  程序代码

第9章  JPEG编码硬件加速器(JPEG  Encoder  Accelerator)

9.1  JPEG概述

9.2  设计描述(Design  Description)

9.2.1  dct_ld模块设计概念

9.2.2  dctctl模块设计概念

9.2.3  jpegctl模块设计概念

9.2.4  smul模块设计概念

9.2.5  zzscan模块设计概念

9.2.6  vlcctl模块设计概念

9.2.7  packer模块设计概念

9.3  程序代码

更多简介内容

推荐帖子

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })
×