实验二 译码器及其应用

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

五、实验步骤与实验结果

法一:基于附件一代码实现74138功能

1、用VHDL设计38译码器。打开QuarterII新建一个基于ALTERA的Cyclone系列FPGA芯片EP1C3T144C8N的项目保存在D:\dianlu\ecp1文件夹中,新建一个Verilog HDL文件,将附件一代码写入,运行无错误,进行引脚锁定(图1-1),重新运行,无误后,进行“Creat symbol files for current file”操作,将decoder38.bsf和decoder38.v文件复制到ecp2文件夹中。

实验二 译码器及其应用

 

图1-1 引脚锁定图

2、验证38译码器逻辑功能。在电脑安装好usb blaster驱动的前提下,下载到FPGA开发板上进行测试,测试结果如图1-2,注意:LED灯是是Y输出为0时才亮

表2-1

输入

输出

E1

E2+E3

A2

A1

A0

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

1

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

1

1

0

0

1

0

1

1

0

1

1

1

1

1

1

0

0

1

1

1

1

1

0

1

1

1

1

1

0

1

0

0

1

1

1

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

0

1

1

1

0

1

1

0

1

1

1

1

1

1

0

1

1

0

1

1

1

1

1

1

1

1

1

1

0

0

X

X

X

X

1

1

1

1

1

1

1

1

X

1

X

X

X

1

1

1

1

1

1

1

1

3、用38译码器实现逻辑函数。再创建一个一个基于ALTERA的Cyclone系列FPGA芯片EP1C3T144C8N的项目保存在D:\dianlu\ecp2文件夹中,通过自己设计的74138(decoder38)元件进行的逻辑电路设计,连接完毕后进行引脚锁定,如图3-1。

实验二 译码器及其应用

 

图3-1 逻辑电路图

将Z的逻辑函数进行仿真,仿真图如图3-2,仿真图解读:由于Z=m0+m2+m4+m7,所以在使能的情况下只有当ABC为000,010,100或111的时候Z才输出1否则输出0,在不使能的情况下,ABC不论输入什么Z输出都为0。

实验二 译码器及其应用

 

图3-2 仿真图

可以将ecp2的逻辑功能下载到下载到FPGA开发板上进行测试,测试结果可由仿真图或开发板验证,结果如图3-3,注意:LED灯是是Z输出为0时才亮

表3-3

输入

输出

E1

E2+E3

A

B

C

1

0

0

0

0

1

1

0

0

0

1

0

1

0

0

1

0

1

1

0

0

1

1

0

1

0

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

0

1

1

1

1

法二:基于附件一代码实现74138功能

1、用VHDL设计38译码器。打开QuarterII新建一个基于ALTERA的Cyclone系列FPGA芯片EP1C3T144C8N的项目保存在D:\dianlu\ecp3文件夹中,新建一个Verilog HDL文件,将附件二代码写入,运行无错误,进行引脚锁定(图1-1),重新运行,无误后,进行“Creat symbol files for current file”操作,将decoder38.bsf和decoder38.v文件复制到ecp4文件夹中。

实验二 译码器及其应用

 

图1-1 引脚锁定图

2、验证38译码器逻辑功能。在电脑安装好usb blaster驱动的前提下,下载到FPGA开发板上进行测试,测试结果如图1-2,注意:LED灯是是Y输出为0时才亮

表2-1

输入

输出

E1

E2+E3

A2

A1

A0

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

1

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

1

1

0

0

1

0

1

1

0

1

1

1

1

1

1

0

0

1

1

1

1

1

0

1

1

1

1

1

0

1

0

0

1

1

1

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

0

1

1

1

0

1

1

0

1

1

1

1

1

1

0

1

1

0

1

1

1

1

1

1

1

1

1

1

0

0

X

X

X

X

1

1

1

1

1

1

1

1

X

1

X

X

X

1

1

1

1

1

1

1

1

3、用38译码器实现逻辑函数。再创建一个一个基于ALTERA的Cyclone系列FPGA芯片EP1C3T144C8N的项目保存在D:\dianlu\ecp4文件夹中,通过自己设计的74138(decoder38)元件进行的逻辑电路设计,连接完毕后进行引脚锁定,如图3-1。

实验二 译码器及其应用

 

图3-1 逻辑电路图

将Z的逻辑函数进行仿真,仿真图如图3-2,仿真图解读:由于Z=m0+m2+m4+m7,所以在使能的情况下只有当ABC为000,010,100或111的时候Z才输出1否则输出0,在不使能的情况下,ABC不论输入什么Z输出都为0。

实验二 译码器及其应用

 

图3-2 仿真图

可以将ecp2的逻辑功能下载到FPGA开发板上进行测试,测试结果可由仿真图或开发板验证,结果如图3-3,注意:LED灯是是Z输出为0时才亮

表3-3

输入

输出

E1

E2+E3

A

B

C

1

0

0

0

0

1

1

0

0

0

1

0

1

0

0

1

0

1

1

0

0

1

1

0

1

0

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

0

1

1

1

1

六、实验讨论与总结

1.准备工作,Quattus II7.2的安装和基本使用,EDA设计大致分三步,设计、仿真和下载验证

2. 附件一和附件二代码的区别主要在于输出Y的不同,前者端口非常明确,方便连接电路,但是后者在连接电路的时候要用总线连接出来一根线,并修改“Properties”接出来的总线为Y[7..0],其余端口的根据自己的需求设置“Properties”为Y[i],i=1,2…7

3. 引脚锁定的时候一定要注意逻辑顺序,方便下载到开发板上验证,注意仿真的时候“Simulation”要设置成“Functional”,设置好模拟的信号后,一定要先点一下“Generate Functional Simulation Netlist”不然会报错。

4. LED灯是逻辑0才亮,好处在于解决了器件供能不足的情况,一定注意,灯亮不一定就是逻辑1,要根据实际的情况。

6.138代码书写的时候endmodule后是没有分号的,输入不定义成reg类型,138的输出一定要定义成reg类型

7.往开发板下载验证的时候一定要有驱动,“Mode”要选择“JTAG”,说明可以连线操作

附件一:74138Verilog代码1

module decoder38(A2,A1,A0,E1,E2N,E3N,Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0);

       input  A2,A1,A0,E1,E2N,E3N;

       output Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0;

      

       reg  Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0 ;

       wire E = E1 & (!E2N) & (!E3N);

       wire [2:0] A ={A2,A1,A0};


       always @(E,A)

       begin

              if(E)

                     case(A)

                     3'b000:begin Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b0;end

                     3'b001:begin Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b0; Y0=1'b1;end

                     3'b010:begin Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b0; Y1=1'b1; Y0=1'b1;end

                     3'b011:begin Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b0; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

                     3'b100:begin Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b0; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

                     3'b101:begin Y7=1'b1; Y6=1'b1; Y5=1'b0; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

                     3'b110:begin Y7=1'b1; Y6=1'b0; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

                     3'b111:begin Y7=1'b0; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

                     default:begin Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

                     endcase

              else begin  Y7=1'b1; Y6=1'b1; Y5=1'b1; Y4=1'b1; Y3=1'b1; Y2=1'b1; Y1=1'b1; Y0=1'b1;end

       end

endmodule

附件二:74138Verilog代码2

基于总线式的文章来源地址https://www.toymoban.com/news/detail-415775.html

module decoder38(A2,A1,A0,E1,E2N,E3N,Y);

input A2,A1,A0,E1,E2N,E3N;

output reg [7:0] Y;

wire [2:0] A={A2,A1,A0};

wire E=E1&(!E2N)&(!E3N);


always @(E,A)

begin

       if(E)

              case(A)

              3'b000:Y=8'b1111_1110;

              3'b001:Y=8'b1111_1101;

              3'b010:Y=8'b1111_1011;

              3'b011:Y=8'b1111_0111;

              3'b100:Y=8'b1110_1111;

              3'b101:Y=8'b1101_1111;

              3'b110:Y=8'b1011_1111;

              3'b111:Y=8'b0111_1111;

              default

                  Y=8'b1111_1111;

              endcase


       else

              Y=8'b1111_1111;


end

endmodule

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

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

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

相关文章

  • 6、七段数码管显示译码器设计与应用

    掌握七数码管显示原理 掌握七段码显示译码设计 进一步熟悉 Xilinx ISE 环境及 SWORD 实验平台 任务 1:原理图设计实现显示译码 MyMC14495 模块 任务 2:用 MyMC14495 模块实现数码管显示 1.创建工程并绘制原理图 建立工程 MyMC14495,创建原理图文件 MyMC14495,按原理图绘制 2.原理图仿真

    2024年02月07日
    浏览(43)
  • 北邮22级信通院数电:Verilog-FPGA(7)第七周实验(2):BCD七段显示译码器(关注我的uu们加群咯~)

    北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.verilog代码 1.1 decoder_led.v 1.2 decoders.v 二.管脚分配 三.效果展示 四

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

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

    2024年02月02日
    浏览(42)
  • 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日
    浏览(113)
  • 3-8译码器

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

    2024年02月11日
    浏览(40)
  • 小梅哥——38译码器

    三八译码器,即是 3 种输入状态翻译成 8 种输出状态。 真值表 代码展示 testbench 仿真图 补充 (1)always语句两种触发方式 a、第一种是 电平触发 ,例如always @(a or b or c), a、b、c均为变量,当其中一个发生变化时,下方的语句将被执行。 b、第二种是 沿触发 ,例如always @(po

    2023年04月17日
    浏览(46)
  • verilog——三八译码器

    三八译码器 test_bench代码

    2024年02月12日
    浏览(41)
  • verilog入门-38译码器

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

    2024年02月11日
    浏览(43)
  • 【Verilog七段译码器】

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

    2024年02月07日
    浏览(42)
  • 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日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包