数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

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


3. 时序电路的设计

  • 所有的是时序逻辑电路都可以拆成组合逻辑电路+存储
    (关于组合逻辑电路的理解可以参考我数电的博客https://blog.csdn.net/y_u_yu_yu_/article/details/127592466)
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 可以分成两个部分,组合逻辑电路和存储电路。组合逻辑电路的输入一个是x信号一个是当前的状态,这两个信号决定了组合电路的输出结果

  • 组合电路的输出有两个,一个是对外输出信号,还有一个是对下一个状态的激励

  • 三大方程:输出方程,驱动方程和状态转移方程

  • 时序电路的设计过程:在对时序逻辑电路描述的时候,我们说把这三个方程描述清楚,电路就出来了

  • 时序电路设计的方式:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 时序逻辑电路的设计多样性和方法多样性举例

  • 例:用VerilogHDL 设计一个“111”序列检测器,当输入三个或三个以上的“1”时,电路输出为1,否则为 0。

  • 第一种:状态转移图描述方式
    (1)首先确定电路的输入变量和输出变量。该电路仅有一个输入端和一个输出端,设输入变量为 X,代表输入序列;输出变量为 Z,表示检测结果
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    (2)因此需要定义四种电路状态
    s0一初始状态,表示电路还未收到一个有效的 1
    s1一表示电路收到了一个 1
    s2一表示电路收到了连续的两个 1
    s3一表示电路收到了连续的二个 1
    (3)根据状态转移图,编写代码
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 综合的电路:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 第二种:基于状态化简的结构性描述方式
    (1)对图 4.3-3 所的状态转移图进行化简,仅剩三个状态,需要用两位二进制数表示,即需要两个D触发器储存状态。设Q1表示高位寄存器的输出,Qo表示低位寄存器的输出。将状态的跳转以及输出Z 用卡诺图的形式示出,
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    (2)由卡诺图得出带你路有的输出方程和状态方程
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    (3)根据简化方程编写代码
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 综合的电路:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 第三种:Verilog HDL抽象描述方式

  • 在 Verilog HDL中还可以对电路进行抽象描述。实现序列“111”的检测,可以使用1个三位的移位寄存器,将输入X作为移位寄存器的输入,当寄存器中为111时,输出Z为1。

  • 代码
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 综合的电路
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.1 触发器

  • 触发器是时序逻辑电路的最基本电路单元,主要有 D触发器、JK 触发器、T触发器和RS 触发器等。根据功能要求的不同,触发器还具有置位、复位、使能、选择等功能
  • !!RS触发器分为普通RS触发器和中控RS触发器,是最早期的触发器类型,性能不是很稳定,只是由一个SET和RESET两个端,这种电路在时序电路设计中很少使用
  • !!JK触发器有两个端子,早期的电路希望有两个而不是一个信号进行控制触发器
  • !!!!D触发器是目前时序电路中用的最广泛的触发器,基本上都是D触发器(重点是D触发器)

3.1.1 最简单的D触发器

数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • 还有两个SET和CLR,SET是置位可能是置一置零,CLR是清零的信号
  • 用HDL描述:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.1.2 带复位端的D触发器

  • 在D触发器的实际使用中,有时需要一个复位端(也称清零端)。
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 电路上电时,电路的逻辑处于不定状态,复位脉冲的到来将电路初始化为 Q=0 的状态随后,在时钟的控制下,输入端D的数据在每个时钟上升沿被置到输出端Q
  • HDL描述:
    (1)同步清零:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    (2)异步清零:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.1.3 复杂功能的D触发器(没有太大必要)

  • 前面介绍了最简单的 D触发器和带有同步清 0、异步清0的D触发器。这里给出同步清0置1和异步清0置1共同在一个触发器上的复杂 D触发器例子
  • Verilog代码:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.1.4 T触发器

  • 其逻辑功能为:当时钟的有效边沿到来时,如果 T=1,则触发器翻转;如果T=0,则触发器的状态保持不变。reset 为复位端,异步复位,低电平有效。
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 带有异步清零的T触发器代码:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.2 计数器

  • 计数器是应用最广泛的逻辑部件之一。计数器可以统计输入脉冲的个数,具有计时计数、分频、定时、产生节拍脉冲等功能
  • 计数器的种类繁多,根据计数器中触发器时钟端的链接方式分为同步计数器和异步计数器:根据计数方式分为二进制计数器、十进制计数器和任意进制(也称为 M 进制)计数器根据计数器中的状态变化规律分为加法计数器、减法计数器和加/减计数器
  • !!在面试中,经常会考,会让你设计一个二分频电路,三分频电路或者n分频电路,但是目的其实就是让你设计一个计数器

3.2.1 二进制计数器

数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

  • HDL描述
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.2.2 (重要)任意进制计数器

  • 需要注意两个事情:位宽和奇数方式
  • 计数方式有两种实现方法:反馈清零法(从0开始,来一个加一个,加到一定清零)和反馈置数法(从置数开始,来一个减一个,减到0回到置数)。
  • 位宽:对于M 进制的计数器,第一步需要确定计数器所需要触发器的个数。N个触发器对应了2的N次方个状态,应有2的N次方>M。任意进制计数器选取满足条件的最小N为计数器中触发器的个数。
  • 以十一进制计数器为例,最少需要 4 个触发器。采用反馈清零法设计的十一进制计数器的 VerilogHDL程序代码如下:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

3.3 移位寄存器

  • 移位寄存器可以用来实现数据的串并转换,也可以构成移位行计数器,进行计数、分频,还可以构成序列码发生器、序列码检测器等,它也是数字系统中应用非常广泛的时序逻辑部件之一
  • 环形移位寄存器
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 该例中,将每个寄存器的输出作为下一位寄存器的输入,并将高位寄存器的输出作为循环的输入。Verilog代码如下:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • !!!!移位寄存器有一个特殊的用法:移位操作符由于在触发器和触发器直接没有组合电路,所以移位寄存器这种电路的速度特别快,在数字电路里面,可以说是最快的电路,所以用移位寄存器可以做很多高速电路的设计

3.4 序列信号发生器

  • 序列信号是数字电路系统中常用的功能单元,其种类很多,如按照序列循环长度 M 与触发器数目 n的关系,一般可分为三种:
    (1)最大循环长度序列码,M = 2n
    (2)最长线性序列码(m序列码),M = 2n-1。(少了全0的状态)
    (3)任意循环长度序列码,M < 2n

3.4.1 例:产生10011序列的信号发生器

(1)方法1:用移位寄存器构成文章来源地址https://www.toymoban.com/news/detail-461922.html

  • 采用循环移位寄存器,在电路工作前,将所需的序列码置入移位寄存器中,然后循环移位,就可以不断地产生需要的序列。
  • 由于移位寄存器输入和输出信号之间没有组合电路,不需要进行组合逻辑的反馈运算,因此这种序loadclk列产生电路的工作频率很高。
  • 缺点是移位寄存Dm-i器长度取决于序列长度,因此所占用电路的面积很大
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • Verilog代码:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    (2)方法2:用移位寄存器和组合逻辑电路构成(数电教材中的方法)
  • 反馈移位寄存器型序列信号发生器的结构框图如图 4.3-14 所示,它由移位寄存器和组合反馈网络组成,从移位寄存器的某一输出端可以得到周期性的序列码。
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 设计步骤:
    1.根据给定的序列信号的循环周期M,确定移位寄存器位数n,2n-1 < M ≤ 2n
    2.确定移位寄存器的M个独立状态。将给定的序列码按照移位规律每n位一组划分为 M 个状态。若M个状态中出现重复现象,则应增加移位寄存器位数。用n+1位再重复上述过程,直至划分为 M 个独立状态
    3.根据 M个不同的状态列出移位存器的态序表和反馈数表,求出馈函数 F的表达式
    4.检查自启动性能
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • Verilog代码:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 状态转移图,三大方程,结构体描述,这三种描述都可以设计这个东西
  • 得到反馈函数之后实际上用的还是移位寄存器,只不过以为寄存器的最低端是反馈函数,函数化简逻辑代数表达式的形式可以得到这个值,然后连接在一起
    (3)方法3:由计数器构成
  • 计数型序列信号发生器和反馈型序列信号发生器大体相同,都由时序电路和组合电路两部分构成。不同之处在于,反馈型序列信号发生器的时序状态由移位寄存器产生,输出取寄存器的最高位;而在计数型序列信号发生器中,采用计数器代替移位寄存器产生时序状态,输出由组合电路产生。
  • 计数型序列信号发生器的优点在于,计数器的状态设置与输出序列没有直接关系,不需要根据输出确定状态,只需要将反馈网络设计好就可以了。因此计数结构对于输出序列的更改比较方便,而且只要连接到不同的反馈网络,就可以同时产生多组序列码。
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 实际上就是一个译码电路
  • 分为两步
    1.根据序列码的长度 M 设计 M 进制计数器,状态可以自定
    2.按计数器的状态转移关系和序列码的要求设计组合输出网络
  • 对于“100111”序列的信号发生器,序列信号的 M 值为6,因为需选用模6计数器计数器的状态选择从000到101
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 其中,译码电路也可以用case语句进行设计

(总结)序列信号发生器

  • 实际上序列信号发生器产生的过程是一个特别典型的数字电路设计的过程
  • 讲了三种设计方式(实际上也有有限状态机,状态转移图等方式,但是现在只看这三种电路设计方式),即3.4开头说的
  • !!!!第一种方式采用移位寄存器的设计方式,这种电路方式特别快,所以对于信号来讲是非常好的设计方式,但是耗费了六个寄存器(如果描述1024长度的信号,这时候就需要1024个寄存器),这个的问题就是用面积换速度
  • !!!!第二种方式从存储位宽的角度讲,因为只存储当前的状态,所以存储3-4个bit就可以(6位的信号)这样的话,如果是一个1024位的信号,那么存10个或者11个bit就可以了,位宽就减少了。但是有一个问题,它的反馈网络有一个反馈信号输入端,当信号发生扰动的时候(组合电路出现状况),如果反馈信号一旦发生错误,电路功能就不对了,所以这个电路需要一段时间以后才能自愈合甚至不能自愈合
  • !!!!第三种电路分为组合电路和计数器电路 ,组合电路没有对计数器进行反馈。组合电路的输出结果是由当前输入决定,也就是当组合电路发生错误的时候,只要保证输入正确,这个错误就不会带到下一个信号,所以误差不会传播。当计数器产生错误时,可以通过设计保护电路,让它在异常状态下可以回到其实状态,如果进入计数器的六个状态,一段时间后,他就能自愈合回到起始状态,所以电路的可靠性就比较高
  • !!所以,电路设计和方法与电路的可靠性和性能是密切相关的

3.4.2 伪随机码发生器

  • 伪随机码是一种变化规律与随机码类似的二进制代码,可以作为数字通信中的一个信号源,通过信道发送到接收机,用于检测数字通信系统错码的概率,即误码率。
  • 在传统的数字电路设计中,伪随机序列信号发生器是用移位寄存器型计数器来实现的,见图 4.3-14(上面讲的方式2,想到小m序列产生的时候,我们一定要知道他就是这种反馈的组合逻辑网络来实现的)。反馈网络输入信号从移位寄存器的部分输出端(Qn1~Qo)中取出,它的输出端F反馈到移位寄存器的串行输入端
  • 数学家提供了一种N-F表,N代表抽头的数量,F代表产生异或的输出端信号的位置。简单来说,电路就是方式2的图,对于组合反馈网络来讲就是一个异或的电路,F就是对图中Q的对应位置的几位异或反馈到输入端就可以了
  • 主要问题:怎么确定反馈系数?数学家就提供了N-F表。N代表小m序列的存储位宽(要设计1023的小m序列,需要10bit),F就是反馈的抽头系数
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • 小m和大M相比少了一个状态(全0状态),下面以N=4 为例。在 15 位最长线性序列移位寄存器型计数器中,有一个由“0000构成的死循环,为了打破死循环,可以修改式为
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)
  • Verilog代码如下:
    数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(二)

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

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

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

相关文章

  • Ubuntu18.04虚拟机EDA环境,支持模拟集成电路、数字集成电路、数模混合设计全流程,包含工艺库

    搭建了 Ubuntu18.04 虚拟机环境,工具包括但不限于: virtuoso IC618,innovus,genus,spectre,xceliummain,formality,synplify,hspice,icc2,primetime,sentaurus,siliconsmart,spyglass,starrc,design compiler,vcs,verdi,calibre,modelsim,tessent,ADS,GoldenGate 等。具体工具及版本见后文图片。虚拟机工

    2024年04月14日
    浏览(81)
  • 数字集成电路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日
    浏览(61)
  • 模拟集成电路设计:Bandgap电路设计及版图实现

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

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

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

    2024年02月13日
    浏览(59)
  • 数字逻辑电路设计课程设计

    1、学会应用数字系统设计方法进行电路设计; 2、进一步提高quartus II软件的开发应用能力; 3、提高VHDL进行综合设计的能力; 4、培养学生书写综合实验报告的能力。 1、设计平台:quartus II+HH-SOPC-EP1C12 EDA/SOPC实验开发平台 2、设计方法:利用VHDL代码和/或原理图方法,采用层次

    2024年02月01日
    浏览(85)
  • 从零学verilog系列(4)组合逻辑电路设计方法

      目录 1.组合电路设计方法 1.1真值表方式(本质是最小项表达式) 1.2逻辑表达式方式 1.3结构描述方式 1.4抽象描述方式(从电路功能出发) 2组合电路设计项目 2.1数字加法器 半加器(1位加法器) 全加器 串行进位加法器(行波进位加法器) 超前进位加法器 2.2数据比较器 2.3数据选

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

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

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

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

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

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

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

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

    2024年02月07日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包