数字集成电路设计(六、Verilog HDL高级程序设计举例)

这篇具有很好参考价值的文章主要介绍了数字集成电路设计(六、Verilog HDL高级程序设计举例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1. 数字电路系统设计的层次化描述方式

  • 在我们的数电,集成电路设计里面,一定是层次化设计的
  • 在一个手机芯片的一个部分,写的硬件描述语言的层次都能达到20几层,对于这样的设计,我i们就能想到采用底层的设计,中间层的设计和顶层的设计。对于小规模电路,极小规模电路,通常想的是先有模块然后去搭一个电路,这样的就叫Bottom-Up的设计

1.1 Bottom-Up 设计方法

  • Bottom-Up 设计方法是一种传统的设计方法,它要求电路设计者将系统进行模块划分,从底层模块设计开始,运用各底层模块搭建一个完整的系统。在这种设计方法中,首先根据系统设计的要求,定义并建立所需要的叶子模块,通过模块连接方式建成较大的模块,然后把这些比较大的模块组合成具有一定功能的模块,最后将这些功能模块组合,直到完成整个系统
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • !!这种设计方式存在一些问题:规模做不大。当你做完最简单的模块往上堆,当堆得越来越高的时候你会发现这个时序差一点,那个差一点。这时候要怎么改呢?要从地下往上改,这个工作量非常大, 所 以 这 是 不 推 荐 的 一 种 设 计 方 式 所以这是不推荐的一种设计方式
  • 举例:串行加法器
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发

1.2 Top-Down 设计方法

verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发文章来源地址https://www.toymoban.com/news/detail-852999.html

  • !!现在的大规模,超大规模集成电路设计,一定是从顶层开始设计的,包括功能,面积,时序,功耗等
  • 对于下面,会写出空的模块给下面,会告诉每一个模块自己的约束,然后再往下分,一直分到Engineer。
  • 能做到最上面得都是行业顶尖
  • !!!!从代码的角度,真正难得是在下面,说的行为级描述啥都是在底层的模块,越往上面越是结构性的描述,都是模块搭,但是这个模块搭建就要求非常严格。所以在我们的设计中一定要做好这方面的准备工作,然后才会有时序,总线一大堆的概念,所以是一个不断学习的过程
  • 举例:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发

2. 典型电路设计

2.1 加法器树乘法器

  • 加法器树乘法器的设计思想是“移位后加”,并且加法运算采用加法器树的形式。乘法运算的过程是,被乘数与乘数的每一位相乘并且乘以相应的权值,最后将所得的结果相加,便得到了最终的乘法结果。也就是第一位不用移,第二位乘2相当于左移一位,以此类推。
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • Verilog代码实现上图的4位加法器树乘法器:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 这个电路的速度会非常慢,他的速度决定于加法,这个电路就是二选一的数据选择器拼接在一起,主要的延迟就是来自于加法的延迟

2.1.1 改进为两级流水线4位加法器树乘法器

  • 为了提高乘法器的速度,可以穿插流水线的方式,这样就可以把两步的加法变成一步的加法的速度(其实改变的是吞吐率,关于流水线可以看我的数电博客 https://blog.csdn.net/y_u_yu_yu_/article/details/127641915)
  • !!在计算机中,我们现在的普通高精度乘法是64位乘64位,可想而知,我们在它的运算指令单元中加多少级流水线才能达到3.几个G的运算速度。cpu的运算结构,虽然占很大面积,但是并不是很麻烦的一件事情,所有的计算单元基本都是以这种方法来提高它的计算速度
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 通过在第一级与第二级、第二级与第三级加法器之间插入 D触发器组,可以实现两级流水线设计,其VerilogHDL代码如下:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • !!在时钟上升沿用了一个非阻塞型赋值,就可以得到流水线的操作(当我们讲阻塞赋值和非阻塞赋值在时序电路中就是流水线的事情)

2.2 Wallace 树乘法器

  • !!在电路设计中,最可怕的不是之前的单元,而是加法。在4位乘法,我们对于一个传统的加乘的观念,要进行六级以上,使得延迟会变得非常大。Wallace通过3级就能实现4x4这样结构的乘法
  • 其基本原理是加法从数据最密集的地方开始,不断地反复使用全加器、半加器来覆盖“树”。这一级全加器是一个3输入2输出的器件,因此全加器又称为3-2压缩器。通过全加器将树的深度不断缩减,最终缩减为一个深度为 2 的树。最后一级则采用一个简单的 2 输入加法器组成。
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 形成的电路结构如下图,运用了全加器和半加器(FA 为全加器,HA 为半加器)
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • Verilog代码:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 测试代码:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 测试结果:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • !!一开始设计可能是有了基本的知识就可以,但是越到后面越考验数学的能力,数学建模和建模后化简成电路的能力

2.3 复数乘法器

  • 复数乘法的算法是:设复数 x=a +bi , yc +di ,则复数乘法结果为
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 用了四个乘法和两个加法
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • !!!!根据具体的电路要求,我们可以进行优化:如果是高速电路,我们需要在所有的乘法器和加法器打上流水线才算做完;对于低速电路,整个芯片工作能力比如是500Mhz,但是我需要50Mhz,这时候简化成一个乘法器一个加法器就够了,在想让面积减小的时候也可以这么做
  • Verilog实现:
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 测试结果
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发

2.4 FIR滤波器的设计

  • 滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛用于通信系统和信号处理系统中。从功能角度而言,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带外信号的目的。
  • !!这个电路非常重要,所有的信号处理,所以的移动终端上,都有大量的FIR。这个东西的特点是面积特别大,电路特别简单
  • 有限冲激响应(FIR)滤波器就是一种常用的数字滤波器,采用对已输入样值的加权和来形成它的输出。其系统函数为
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • 其中z-1表示延迟一个时钟周期,z-2表示延迟两个时钟周期
  • 对于输入序列X[n]的FIR 滤波器,可用图6.2-10 所示的结构示意图来表示,其中X[n]是输入数据流。各级的输入连接和输出连接被称为抽头,系数(b0,b1,……,bn)被称为抽头系数。一个M 阶的FIR 滤波器将会有 M+1个抽头。通过移位寄存器用每个时钟边沿 n(时间下标)处的数据流采样值乘以抽头系数,并将它们加起来形成输出 Y[n]。
    verilog hdl高级数字设计,Verilog HDL数字集成电路设计,fpga开发
  • !!在Altera,Xilinx等的所有工具中间都有滤波器工具,可以通过给定的长度和要求,可以自动生成滤波器的系数。在设计滤波器的时候,首先应该大概画一个曲线的样子,然后用这些工具生成系数,然后在仿真看系统有没有影响,然后定点化,然后再看有没有影响,然后放到电路设计里面
  • !!!!IIR滤波器在信号中会产生振荡,产生自激的现象。FIR在信号中只有零点没有极点,而IIR滤波器由于反馈会有极点产生,极点对于电路代表的是不稳定,IIR滤波器很吸引人,因为几阶就能达到FIR几十阶的效果,但是我们牺牲了反馈型滤波器而用横向滤波器
  • MATLAB也嵌入了设计工具,给抽头长度,给要求,就会生成浮点的和定点的抽头系数,还可以直接生成Verilog代码
  • !!在这个电路中,对电路产生延迟最大的是加法器,乘法器只是两个数相乘然后输出就行了,不会引起太多延迟。当抽头变多的时候,我们会增加加法器的数量

2.5 存储器的设计

  • 存储器发生了巨大的变革,全世界最好的工艺都在做存储器,得存储器,得数字电路天下,存储器做的越好,数字集成电路越好。从工艺角度上,存储器单元都是一样的,这时候对高精度的线是非常有利的,检查良品率,只要一致性好,没有问题;打开cpu来看,存储器的面积占了一大半

2.6 FIFO的设计

  • 实操可以看我FPGA的博客 https://blog.csdn.net/y_u_yu_yu_/article/details/127157227

到了这里,关于数字集成电路设计(六、Verilog HDL高级程序设计举例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字集成电路VLSI复习笔记

    逻辑门符号 Inverter CMOS NAND Gate CMOS NOR Gate MOS Capacitor nmos cutoff Linear Saturation Channel Charge Carrier velocity nMOS Linear I-V nMOS Saturation I-V Summary nMOS Operation pMOS Operation Inverter Step Response Delay Definitions 3-input NAND Caps Elmore Delay Estimate rising and falling propagation delays of a 2-input NAND driving h identical

    2024年01月18日
    浏览(66)
  • 模拟集成电路设计:Bandgap电路设计及版图实现

    一、目的: 1、熟悉模拟集成电路设计的基本流程,实现Bandgap电路设计; 2、熟悉Linux系统及Cadence Virtuoso icfb设计、仿真软件的使用方法。 二、原理: 1 、设计目标: Bandgap设计目标:提供稳定的电压基准:具有一定的绝对精度(例如3%,5%)、温漂系数小(例如20ppm);尽可能大的电

    2024年02月03日
    浏览(77)
  • CMOS 半加器和全加器&&数字集成电路&& Cadence Virtuoso

    NOR: NAND: 最重要的反相器: NOR: NAND: 最简单的反相器: 好,现在开始设计半加器 我是默认你是懂半加器原理的 这里先放一个模块间连线: 然后shift+f看细节图: 这里一个小技巧: 如果发生导线交叉,可以换个材料,否则就会短路。 直接看Schematic吧 到这里,应该能生成

    2024年02月13日
    浏览(60)
  • 集成电路CAD课程实验报告:二输入与非门电路设计、版图设计与仿真

    一、实验目的: 1、掌握Cadence Virtuoso快捷键技巧,学会使用Cadence进行原理图设计、版图设计、原理图仿真。 实验使用AMI 0.6u C5N工艺,了解NCSU Cadence设计套件(NCSU_Analog_Parts库)的使用。 实现二输入与非门电路设计、版图设计与仿真。 实验步骤: 在库管理器中添加一个库,为

    2024年02月04日
    浏览(76)
  • 模拟CMOS集成电路设计入门学习(6)

    共源共栅结构(Cascode) 回顾: 共源级 中晶体管可以将电压信号转换为电流信号; 共栅级 的输入信号可以是电流。 将共源级和共栅级进行级联:  :输入器件;:共源共栅器件; {流经和的电流相等} (1)分析共源共栅结构的偏置条件   ① 为了保证工作在饱和区 ,必须满

    2024年02月09日
    浏览(71)
  • 模拟CMOS集成电路设计入门学习(3)

    共源极 (1)采用电阻负载的共源极 电路的大信号和小信号的特性我们都需要研究。{电路的 输入阻抗 在 低频 时非常高} ①从0开始增大, 截止 ,; ②接近时,开始 导通 ,电流流经使减小; ③进一步增大,也变大但还小于时,NMOS管仍处于 饱和区 ,直到 即=时( 预夹断 )

    2024年02月07日
    浏览(59)
  • 【模拟CMOS集成电路设计】学习笔记(一)

      持续更新,若有后续更新,更新链接将附于文末,后续有时间会对内容更新。   放大器放大的是小信号,只有在特定的静态工作点下,小信号放大才有意义,因此一些小信号指标常与某个DC点相关联,若小信号幅度超过系统输入范围要求,则将会发生线性失真,合适的

    2024年02月10日
    浏览(55)
  • 集成电路CAD设计:CMOS 环形振荡器设计与仿真

    一、目的: 1、掌握Cadence Virtuoso快捷键技巧,学会使用Cadence进行原理图设计、版图设计、原理图仿真。 2、实验使用AMI 0.6u C5N工艺,了解NCSU Cadence设计套件(NCSU_Analog_Parts库)的使用,学会使用自行设计的反相器设计环形振荡器。 3、实现CMOS 环形振荡器的设计与仿真。  二、

    2023年04月14日
    浏览(53)
  • 【模拟CMOS集成电路设计】带隙基准(Bandgap)设计与仿真

      此次设计,未使用运放,使用电流镜结构为基础的Bandgap来满足设计指标,主要目标是在结构简单的前提下满足设计指标要求。   本次设计指标,如表1所示   ( 线性调节率 指输出基准电压随直流VDD的变化率,电源电压从电路正常工作的最小电压起到额定电源电压为止

    2024年02月13日
    浏览(63)
  • 集成电路设计开源EDA软件yosys详解1:工具安装

    yosys为一套开源的针对verilog的rtl综合框架,从本节开始将详细介绍工具的使用,并详细对源代码进行分析和讲解,首先介绍一下工具的安装和使用。yosys的git网址为https://github.com/YosysHQ/yosys。 下面将介绍如何在ubuntu环境下安装,使用的环境是ubuntu16.0。 安装Tabby CAD Suite工具,网

    2023年04月25日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包