小梅哥——38译码器

这篇具有很好参考价值的文章主要介绍了小梅哥——38译码器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 三八译码器,即是 3 种输入状态翻译成 8 种输出状态。

  1. 真值表

小梅哥——38译码器
  1. 代码展示

testbench

  1. 仿真图

小梅哥——38译码器
  1. 补充

(1)always语句两种触发方式

a、第一种是电平触发,例如always @(a or b or c),a、b、c均为变量,当其中一个发生变化时,下方的语句将被执行。

b、第二种是沿触发,例如always @(posedge clk or negedge rstn),即当时钟处在上升沿或下降沿时,语句被执行。

c、而对于always@(),意思是以上两种触发方式都包含在内,任意一种发生变化都会触发该语句

(2)数字声明

数字声明时,合法的基数格式有 4 种,包括:十进制('d 或 'D),十六进制('h 或 'H),二进制('b 或 'B),八进制('o 或 'O)。

(3)数值的种类

wire 和reg这两种数据类型的变量在定义时要设置位宽缺省为1位。变量的每一位可以是0,1,X,Z。其中x代表一个未被预置初始状态的变量或者是由于由两个或多个驱动装置试图将之设定为不同的值而引起的冲突型线型变量。z代表高阻状态或浮空量

(4)数据的类型

Verilog 最常用的 2 种数据类型就是线型(wire)与寄存器型(reg),其余类型可以理解为这两种数据类型的扩展或辅助。

a、线网(wire)使用在连续赋值语句中

相当于一根电线,用来连接电路,不能存储数据,无驱动能力,只能在assign左侧赋值。

wire型数据常用来表示以assign关键字指定的组合逻辑信号。模块的输入输出端口类型默认为wire型(默认初始值是z)不指定就默认为1位wire类型,专门指定出wire类型,可能是多位或为使程序易读。

wire表示直通,即只要输入有变化,输出马上无条件地反映。

线网型还有其他数据类型,包括 wand,wor,wri,triand,trior,trireg 等。这些数据类型用的频率不是很高。

b、寄存器(reg)使用在过程赋值语句中

always模块内被赋值的信号,必须定义为reg型,默认初始值是x。

reg表示一定要有触发,输出才会反映输入。

reg只能在initial和always中赋值。

reg可以综合成register,latch,甚至wire(当其只是中间变量的时候),可以用于组合逻辑或者时序逻辑,能存储数据,有驱动能力,在always @模块表达式左侧被赋值。

寄存器(reg)用来表示存储单元它会保持数据原有的值,直到被改写

c、两者的共同点

都能用于assign与always @模块表达式的右侧。

d、连续赋值语句和过程赋值语句

连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire

过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或下降沿,那么这个硬件模型就是一个触发器;如果这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;如果这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。

e、综合之后的区别

wire型的变量综合出来一般是一根导线;

reg变量在always块中有两种情况: always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑 always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)

在设计中,输入信号一般来说你是不知道上一级是寄存器输出还是组合逻辑输出,那么对于本级来说就是一根导线,也就是wire型。而输出信号则由你自己来决定是寄存器输出还是组合逻辑输出,wire型、reg型都可以。但一般的,整个设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。

(5)

输入端口可以由net/reg驱动,但输入端口只能是net,如a = b & c,输入端口a 只能是net型,但其驱动b,c可以是net/reg型;

输出端口可以使net/reg类型,输出端口只能驱动net,如a = b & c,模块的输出端口b,c可以是net/reg型,但它们驱动的a必须是net型;若输出端口在过程块(always/initial)中赋值则为reg型,若在过程块外赋值则为net型。用关键词inout声明一个双向端口, inout端口不能声明为寄存器类型,只能是net类型。


(6)课后作业

实现4-16译码器

a、原理框图文章来源地址https://www.toymoban.com/news/detail-416204.html

小梅哥——38译码器
小梅哥——38译码器

到了这里,关于小梅哥——38译码器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • verilog入门-38译码器

    一、组合逻辑电路与时序逻辑电路 组合逻辑电路: 任意时刻的输出仅仅由该时刻的输入决定,与电路当前的状态无关 。 时序逻辑电路: 任意时刻的输出不仅由该时刻的输入决定,还与电路当前的状态有关 。 二、38译码器的工作原理 表①、38译码器真值表 3种输入状态翻译

    2024年02月11日
    浏览(29)
  • FPGA学习小例子:38译码器设计与仿真

    译码器74x138是数字电路课程重点内容之一。译码器的设计比 较简单,使用Verilog语言实现译码器就更为简单。本教程设计了一个3-8译码器并做了仿真。 打开vivado,点击File 填写项目名,以及选择项目路径 并勾选“Do not specify sources at this time”,意思是先创建工程,后期再添加

    2024年02月09日
    浏览(38)
  • 实验一:38译码器的VHDL实现及原理图实现

    找了好多好多,感觉网上都不太人性化,所以自己记录了一下自己写的,还是有点意思的的,但是这前面的没啥意思,到后面连起来用的时候就有意思了! 1、项目的创建 1、File - New Project Wizard 后面没有选择, 一路无脑下来,项目就已经安装好了! 2、两种方法实现38译码器

    2024年02月02日
    浏览(38)
  • 计算机组成原理32位MIPS CPU设计实验(指令译码器电路设计 、时序发生器状态机设计、时序发生器输出函数、硬布线控制器)

    这次实验是32位MIPS CPU设计实验(单总线CPU-定长指令周期-3级时序),在头歌当中一共需要我们进行六道题的测试,分别为MIPS指令译码器设计,定长指令周期(时序发生FSM设计,时序发生器输出函数设计,硬布线控制器,单总线CPU设计),硬布线控制器组合逻辑单元。其中由于

    2024年02月02日
    浏览(29)
  • 74138译码器详解

    74138也叫74LS138 参考 百度百科讲的非常详细了。 在这个图中,当6号口通高电平,4、5号口通低电平(因为通了低电平, E 2 ‾ overline {E2} E 2 , E 3 ‾ overline{E3} E 3 , 会变成高电平输入到译码器中)时,译码器开始工作。 然后1、2、3,也就是A0,A1,A2对应输入3位二进制数,从最

    2024年02月01日
    浏览(72)
  • 3-8译码器

      3-8译码器,就是把3种输入状态翻译成8种输出状态,译码器是将输入的具有特定含义的二进制代码翻译成输出信号的不同组合,实现电路控制功能的逻辑电路。译码器在数字系统中应用广泛,可用于代码的转换、终端数字的显示、数据的分配等等。   通过简单的3-8译码

    2024年02月11日
    浏览(28)
  • 138译码器的工作原理

    E1.E2.E3为三个使能输入端,其中E1和E2为低有效,E3为高有效,除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高; 当S1 = 0 或S2’ + S3’ = 1 时,译码器被禁止工作,当S1 = 1时,S2’+S3’ = 0 时,译码器处于工作状态。 A0,A1,A2为3位二进制加权地址输入端口,A2A1A0顺序组成

    2024年02月11日
    浏览(29)
  • 实验二 译码器及其应用

    五、实验步骤与实验结果 法一:基于附件一代码实现74138功能 1、用VHDL设计38译码器。打开QuarterII新建一个基于ALTERA的Cyclone系列FPGA芯片EP1C3T144C8N的项目保存在D:dianluecp1文件夹中,新建一个Verilog HDL文件,将附件一代码写入,运行无错误,进行引脚锁定(图1-1),重新运行,无误

    2023年04月17日
    浏览(27)
  • 【Verilog七段译码器】

    本人只是初学,代码经过实验验证,仅供参考 我自己查找模仿编写运行的代码,如有侵权,联系删除。 这是译码器,其作用是将四位 BCD 码转换成七段数码管的段码,显示 1、 2、3…数字。 简单的译码器,书上的例题,只是我多设置了一个输出B

    2024年02月07日
    浏览(29)
  • Verilog实现 3-8译码器

    拨码开关 LED(低电平有效) 000 11111110 001 11111101 010 11111011 011 11110111 100 11101111 101 11011111 110 10111111 111 01111111 Quartus 联合 Modelsim仿真的相关设置如下: 成功运行的情况应该是会在这个界面 接下来介绍一些常用的按钮(菜单) 经过检查波形图,可以确认是符合我们的预期

    2024年02月08日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包