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

news2025/1/16 16:57:42

文章目录

  • 1.Verilog语言的设计思想和可综合特性
  • 2. 组合电路的设计
    • 2.1 数字加法器
    • 2.2 数据比较器
    • 2.3 数据选择器
    • 2.4 数字编码器
      • 2.4.1 3位二进制8线-3线编码器
      • 2.4.2 8线-3线优先编码器
      • 2.4.3 二进制转化十进制8421BCD编码器(重要)
      • 2.4.4 8421BCD十进制余3编码器
    • 2.5 数字译码器
    • 2.6 奇偶校验器


  • 非常重要

1.Verilog语言的设计思想和可综合特性

  • HDL是对硬件电路的一种描述性设计语言,它的过程和传统C语言不一样

  • C语言是一种高级程序语言,然后把它编译成机器代码,然后对cpu,dsp,mcu这些处理器操作的过程,所以它只有代码到编译这个过程生成机器执行代码

  • 而电路描述语言是在计算机上对硬件进行设计,目标是一个电路,最后是通过综合工具生成一个简单的元器件的生成关系,我们称之为网表

  • 可能产生的错误设计:
    在这里插入图片描述在这里插入图片描述

  • Verilog HDL的电路描述方式具有多样性,这也决定了电路设计的多样性。例4.1-2是对一个多路选择器的设计,程序(a)采用的是真值表的形式,程序(b)采用的是逻辑表达式的形式,程序©采用的是基本逻辑单元的结构性描述形式。
    在这里插入图片描述 在这里插入图片描述

2. 组合电路的设计

  • 组合电路的特点是,电路中任意时刻的稳态输出仅仅取决于该时刻的输入,而与电路原来的状态无关

  • 需要考虑以下方面:
    (1)所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单,这样的电路称为“最小化”电路
    (2)为了满足速度要求,应使级数尽量少,以减少门电路的延迟
    (3)电路的功耗应尽可能地小,工作时稳定可靠
    (4)1是功能要求,2和3是性能要求

  • 讲组合电路的时候:用真值表描述,用卡诺图化简得到最简代数表达式,再写出结构体描述。

  • !!!!但是我们发现卡诺图在HDL好像没有生存的余地,包括后面的有限状态机。这是因为它们这种优化的方法已经被数学完全的取代了,都交给综合工具去做了,和硬件描述语言的设计已经没有太大关系了

  • 组合逻辑电路的描述方式有四种: 真值表、逻辑代数、结构描述、抽象描述。采用 VerilogHDL 进行组合逻辑电路设计主要采用的就是这几种方式
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 对于前三种设计方式,结构体描述读起来是最困难的,case语句加真值表是最直接的一种方式,数据流描述是一种最简化的描述

  • !!当你对数字电路的认知程度不同的时候选择的电路是不一样的,很多初学者都会选择真值表,然后发现有问题解决不了了,就会改成结构型描述。当水平达到一定程度时,直接数据流描述

  • 第四个抽象描述方式
    在这里插入图片描述

  • 抽象描述方式的优点是当裁判数量特别多的时候用这种方式很快,这种方式实际上就是硬件描述语言的RTL的抽象描述方式

  • !!不能随便写,在这个例子中,我们要脑子里有一个加法器,一个数据比较器,然后去写这个加法器和数据比较器,而不是写完了让综合工具去解决

  • 最后一步是综合,EDA 综合工具可以将 Verilog HDL程序综合成物理电路形式,通过电路优化,从而得到符合设计要求的最简化电路
    在这里插入图片描述

  • !!综合工具一方面把电路从代码的方式变成简单元器件的连接关系,同时进行了优化,把它变成了一个最简单的元器件的连接关系

2.1 数字加法器

  • 数字加法器是一种较为常用的逻辑运算器件,被广泛用于计算机、通信和多媒体数字集成电路中
    在这里插入图片描述

  • 代数逻辑表示为
    在这里插入图片描述

  • 对应的电路如图
    在这里插入图片描述

  • 利用连续赋值语句实现和利用行为描述方式实现
    在这里插入图片描述

  • 采用行为描述方式可以提高设计的效率,对于一个典型的多位加法器的行为描述设计仅需改变代码中输入和输出信号的位宽即可。例如一个 2输入8 bit 加法器,可以采用下面的 VerilogHDL程序代码实现。
    在这里插入图片描述

  • !!要注意加法器串联多了会导致电路延迟增大,影响性能(具体见我数电的博客 https://blog.csdn.net/y_u_yu_yu_/article/details/127435416)

  • 可以用四位超前进位加法器来提高性能(数学分析省略,原理可以去看上面的博客)
    在这里插入图片描述在这里插入图片描述

2.2 数据比较器

  • 数据比较器用来对两个二进制数的大小进行比较,或检测逻辑电路是否相等。数据比较器包含两部分功能:一是比较两个数的大小;二是检测两个数是否一致。
  • 4位数据比较器的真值表:
    在这里插入图片描述
  • 代码如下:
    在这里插入图片描述
  • 数据比较器在Verilog就是通过关系运算符来得到

2.3 数据选择器

  • 每次在输入地址的控制下,从多路输入数据中选择一路输出,其功能类似于一个单刀多掷开关
    在这里插入图片描述

  • 数字比较器,数字选择器,数字编译器等在电路中都有规定的对应的电路

  • 构成8选1数据选择器
    (1)多个2选1数据选择器的结构级描述
    在这里插入图片描述
    结构如下
    在这里插入图片描述
    (2)抽象描述方式。多路选择器的设计可以采用 case 语句直接进行设计。在这种设计方式中,只需考虑选择信号列表就可以实现功能更为复杂的数据选择器
    在这里插入图片描述

2.4 数字编码器

2.4.1 3位二进制8线-3线编码器

  • 输入电平发生变化的时候,输出结果会标定它的位置
    在这里插入图片描述
  • 数字电路有很多的编码过程,为什么要用编码器:来自于不同位置的信号会非常多,如果每根信号都会产生一个有效位的话,对处理器压力很大。一方面来讲,它要相应这么多信号的位置;另一方面,它的管脚数量会增加
  • 真值表:
    在这里插入图片描述
  • HDL代码实现:
    在这里插入图片描述在这里插入图片描述
    (1)case语句的输入信号要作为敏感事件表放在always@里面
    (2)虽然描述的组合电路,但是左边表达式的量要重新定义为reg类型

2.4.2 8线-3线优先编码器

  • 二进制编码器电路要求任何时刻只有一个输入有效,若同时有两个或更多个输入信号有效,将造成输出混乱,因此在使用过程中有一定局限性。克服这种局限性的一种方法是采用优先编码器。
  • 优先编码器允许多个输入信号同时有效,但它只对其中优先级别最高的有效输入信号编码,对级别低的输入信号不予理睬。优先编码器常用于优先中断系统和键盘编码
    在这里插入图片描述
  • 真值表:
    在这里插入图片描述
    (1)增加了一个选通信号,为0才工作
    (2)在 8个输入端中,i的优先权最高,的优先权最低。当I7反=0 时,无论其它输入端有否有效输入信号(功能表中以x表示),输出端只输出的编码,即YY=000;
    (3)
    在这里插入图片描述
  • 由于可以得到真值表,所以依然可以采用case语句:
    在这里插入图片描述
  • 采用了问号操作符,所以这八句是完整表述,不需要加default
  • 需要对三个信号进行赋值,可以用begin-end,也可以用连接操作符,直接一条语句赋值
  • !!要充分利用语法给我们的宽度

2.4.3 二进制转化十进制8421BCD编码器(重要)

  • 将十进制数 0、1、2、3、4、5、6、7、8、9这10个信号编成二进制代码的电路叫做制转化十进制编码器
  • 0-9是是个数,4位二进制能表示16个数,所以在数字电路中,如果想描述一个十进制数的时候一般用4bit的数
  • 编码表
    在这里插入图片描述
  • 用HDL进行表述
    在这里插入图片描述在这里插入图片描述

2.4.4 8421BCD十进制余3编码器

  • 余3码也是一种 BCD编码,这种编码的特点是:用余3码作十进制加法运算时,若两数之和是 10,正好等于二进制数的 16,则从高位自动产生进位信号。
  • 因此可以使用余3码简化计算。在 8421BCD 码上加3就得到了余3码
  • 真值表
    在这里插入图片描述
  • 功能图
    在这里插入图片描述
  • 输入就是8421BCD编码器,直接加三就可以了
    在这里插入图片描述

2.5 数字译码器

  • 3-8译码器被广泛使用原因:3-8译码器最早是配和单片机系统出现的,而单片机的引脚最初非常少,为了对外面的电路进行控制,通常会在外面接一个3-8译码器
  • !!随着电路规模增大,译码电路就会变得复杂得多,包括有时序的概念在上面
  • 逻辑电路:
    在这里插入图片描述
  • 真值表:
    在这里插入图片描述
  • !!问题:数字电路为什么有的时候有效信号是高电平有的时候有效信号是低电平?
  • 在数字电路里面,我们认为高电平是不稳定的,因为处在高电平的时候,电源会产生一些波动,所以很少在电路中采用高电平有效。因此,大多数电路都是低电平有效,直接拉到地
  • 译码器的实现有很多种方法,下面举两种方法
  • 方法1:
    在这里插入图片描述在这里插入图片描述
  • 方法2(抽象):
    在这里插入图片描述
  • 采用抽象描述方式的优势是不需要对电路化简,根据相对固定的设计模式,可以直接得到所需要的电路

2.6 奇偶校验器

  • 判断输入信号和发出来的数是否可能会有差距
  • !!在芯片设计过程中,信号是在硅的介质上进行设计的,由于电源和外界扰动可能会对信号造成影响,所以现在对高速信号集成电路,一般不会按照8位,16位这种去排总线,一般是9位,18位,也就是每8个信号增加1bit的校验位,这样就能确保信号有更大的可能是正确的
  • 在可编程逻辑器件中,所有的乘法器。RAM等全部都是奇偶校验的
  • 奇偶校验一般用在能够重新操作的计算机硬件中,例如:SCSI 总线和微处理器中的高速缓存,在发生错误时,这些部件可以丢掉数据,获取重发数据。
  • 例:8bit奇偶校验器
    在这里插入图片描述
  • 对于一个奇校验器,就是判断1的个数,偶校验就是判断0的个数,所以就用异或电路,奇校验和偶校验就差了一个非
    (1)结构描述方式
    在这里插入图片描述
    (2)抽象描述方式
    在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ue4使用Niagara粒子实现下雨效果,使用蓝图调节雨量

一、使用Niagara粒子系统实现下雨效果 1. 首先创建一个雨水的材质 新建 — 材质 2. 创建Niagara系统 新建 新建 — FX — Niagara系统 — 来自所选发射器的新系统 — 下一步 — 选择Fountain — 点击号,点击完成 删除下面的“Add Velocity in Cone” 添加“…

矩池云如何自定义端口,访问自己的web项目

本文将向您介绍如何在矩池云租用服务器的时候自定义端口,并将您的 web 项目部署到自定义端口,最后实现在本地通过自定义端口对应链接访问服务。 上传代码和数据 首先,您需要将本地的项目代码和数据上传到矩池云网盘。这里为了方便您测试使用…

类似ps的python工具lama cleaner

Lama Cleaner是个类似ps图片的工具,可以把图片中不想要的部分p掉,或者填补图片中丢失的部分。用下来感觉还蛮靠谱,对于不会ps的人是福音,记录一下。 相关介绍:https://github.com/Sanster/lama-cleaner 1.安装 安装…

react 中 ref 管理列表

背景 最近在看 react 新的官方文档 的时候,看到这么一个标题,How to manage a list of refs using a ref callback,就是一个图片的列表,类似这样 然后点击按钮的时候,通过 scrollIntoView 这个 api 来让他滚动&#…

python生成模拟微信气泡图片

0. 起因 众所周知,借刀杀人最为致命,聊天也是如此。 最近我的群聊画风逐渐变味: 当然,这种图片的生产成本很低,只需在设置页关闭昵称显示,把聊天背景重置为灰色,然后利用截图工具截图&#xf…

【金融项目】尚融宝项目(十三)

25、充值 25.1、需求介绍 25.1.1、投资人充值 **1、需求描述 ** 标的产生后,平台展示标的,投资人就可以在平台投资标的,获取收益;投资人投资标的必须满足以下条件: 充值过程与绑定过程一致,也是在平台发…

Delphi 11.2 Alexandria程序集代码

Delphi 11.2 Alexandria程序集代码 高DPI VCL设计器-VCL设计器现在在设计时使用类似Microsoft Windows的样式,这意味着除非禁用此功能,否则设计器中的控件始终使用此样式绘制。此样式与Windows当前使用的浅色或深色主题相匹配。 编辑器选项卡-在版本11.2…

【3D目标检测】Frustum PointNets for 3D Object Detection from RGB-D Data

目录概述细节网络结构视锥候选框3D实例分割边界框参数回归损失函数概述 首先本文是基于图像和点云的,属于早期的模态融合的成果,是串行的算法,而非并行的,更多的是考虑如何根据图像和点云这两个模态的数据进行3D目标检测。 提出动…

亚马逊平台不给力?来Starday,告诉你什么是真正的高阶玩法

距2021年的亚马逊封号潮已经过去了一段时间,但其影响却依然在跨境电商行业间回荡。从4月份起,亚马逊就开始对违反平台规则的卖家进行封号。此后打击规模持续扩大,到6月中下旬,深圳一批头部卖家均被亚马逊平台下架,遭到…

Coverage-based Greybox Fuzzing as Markov Chain

AFLFast: Coverage-based Greybox Fuzzing as Markov Chain 一、论文阅读 论文来自CCS2016 作者:Marcel Bhme 模糊测试领域巨佬 Abstract 基于覆盖的灰盒模糊测试 Coverage-based Greybox Fuzzing (CGF)。大多数测试用例执行少数高频路径,制定策略倾…

浪潮信息工程师:谈一谈设备透传虚拟机启动慢背后的原因及其优化方法 | 第 51 期

本周「龙蜥大讲堂」预告来啦!龙蜥社区邀请了浪潮信息操作系统研发工程师崔士伟分享《设备透传虚拟机的快速启动优化》,快来扫码入群,预定前排小板凳观看直播吧! 直播主题及内容介绍 直播主题:设备透传虚拟机的快速启…

360+城市空气质量指数-日度数据、良好天数统计(2001-2022年)

360城市空气质量指数-日度数据、良好天数统计(2001-2022年) 城市空气质量指数-日度数据、良好天数统计 1、包括:360个城市 2、时间:2001.1-2022.1月 3、样本量:1371937条 4、数据来源:空气质量在线…

使用Excel 表示汽车、摩托车10年免检时间、非常清晰。

1,汽车摩托车10年内年检问题 根据最新的国家法律: http://www.wenjiang.gov.cn/wjzzw/c152333/2022-09/30/content_66efe4febb8040758f3f079cf0baa310.shtml 搜索了下,找到了成都的规定: 近日,公安部、市场监管总局…

中电海康-中电52所面经

中电海康,中电52所面经中电海康面经一面(电话面)二面(现场面)自我回顾中电海康面经 一面(电话面) Redis的使用和配置多线程的使用,线程池的使用SpringBoot的核心注解和流程AOP IOC …

java项目-第133期ssm物流服务管理平台系统-java毕业设计

java项目-第133期ssm物流服务管理平台系统-毕业设计 【源码请到资源专栏下载】 今天分享的项目是《物流服务管理平台系统》 该项目分为前台和后台。主要分成三个角色:游客、普通管理员、管理员三个角色。 游客就是用户,只要是访问系统前台的用户都可以算…

华为防火墙的四种智能选路方式

FW支持四种智能选路方式,不同的智能选路方式可以满足不同的需求,管理员可以根据设备和网络的实际情况进行选择。 表1 智能选路方式 智能选路方式 定义 根据链路带宽负载分担 FW按照带宽比例将流量分配到各条链路上。带宽大的链路转发较多的流量&…

【我的渲染技术进阶之旅】基于Filament渲染引擎绘制一个不停旋转的彩色矩形

一、绘制三角形回顾 在上一篇博客 【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:Android版本的Filament第一个示例:sample-hello-triangle 中,我们分析了如何使用Filament来绘制一个三角形,效果如下所示,有一个不停旋转的彩色三角形: …

“外卷”的羽绒服

【潮汐商业评论/ 原创】 2022年的寒潮要比以往来得更早。 “你能想到我今年的第一件羽绒服竟然是在十一期间买的。”没等上“双十一”的车,Eva在国庆期间就已下单了“秋天的第一件羽绒服”。把保暖战线拉长的也不止Eva一个人,据浙商证券研报显示&#…

SpringBoot原理初探以及第一个SpringBoot程序【SpringBoot】

文章目录一.SpringBoot1.1 Spring和SpringBoot1.2 本阶段学习任务1.3 微服务架构二.搭建一个SpringBoot程序2.1 新建SpringBoot项目(官方)2.2 正常创建SpringBoot项目2.3 项目结构2.4 启动项目2.5 写一个接口HelloControlier2.6 原理2.7 更改配置三.原理…

Plaxis Python 命令流自动化处理、岩土工程渗流问题之有限单元法

目录 岩土工程渗流问题之有限单元法:理论、模块化编程实现、开源程序手把手实操应用 基于python命令流及代码的Plaxis自动化建模与典型案例实践应用 岩土工程渗流问题之有限单元法:理论、模块化编程实现、开源程序手把手实操应用 有限单元法在岩土工程…