实验目的

  1. 掌握常用组合逻辑电路的 EDA 设计方法;
  2. 熟练掌握基于 QuartusII 集成开发环境的组合逻辑电路设计流程;
  3. 加深对 VerilogHDL 语言的理解;
  4. 熟练掌握 DE2-115 开发板的使用方法;
  5. 掌握多层电路在 QuartusII 集成开发环境中的实现;

实验任务及要求

  1. 任务一:BCD 码译码器设计/仿真/与实现
    要求:用 DE2-115 开发板上的四个拨动开关(从板子上的 18 个拨动开关中任 选 4 个)输入 BCD 码,用 DE2-115 开发板上的一个七段数码管(从 8 个七段数 码管中任选一个)显示译码结果。
  2. 任务二:译码器设计/仿真/与实现
    要求:选用 DE2-115 开发板上的 3 个拨动开关(从板子上的 18 个拨动开关 中任选 4 个)输入,选用 DE2-115 开发板上的 8 个 LED 灯(从 18 个 led 红灯中 任选 8 个)显示译码结果。
  3. 任务三:4 位全加器的设计、仿真与实现
    要求:(1)将两个输入数据和运算结果均显示在 DE2-115 开发板的七段数码管上;用拨动开关输入数据。(2)分两个模块实现:运算模块、显示模块。运算模块是主模块,调用显示 模块实现输入和结果显示。

实验原理与步骤

原理:

  1. 任务一:用 DE2-115 开发板上的四个拨动开关(从板子上的18个拨动开关中任选4个)输入 BCD 码,用 DE2-115 开发板上的一个七段数码管(从8个七段数码管中任选一个)显示译码结果。注意课本中的7段数码管是共阴极连接,而实验室的数码管是共阳极连接,所以逻辑1、0灯应当取相反值。
    对于第一个实验中的4-7BCD码译码器,由于要实现输入的数字能够在7段数码管上显示相应的数字的功能,就需要对每一个输入的情况一一进行输出设计。注意到DE2-115开发板上的7段数码管是共阳极的,因此当这段数码管的输入是低电平时,该管才能发亮。
    DE2-115的7段数码管已经分配好标号,为此我们可以直接进行设置。而输入的4位二进制数可以直接转化为十进制数方便设计。例如当输入的是0000时,输出端按照从高位到低位的顺序应该依次为1000000,输入为1001时,输出端应该是0010000;其他的依次类推,便可实现。

  2. 任务二:
    使能端值、输入值、输出值、LED灯状态的关系如下图所示:
    使能端 3-8译码器的3位输入 3-8译码器的8位输出 8个LED灯的状态
    1 000 8’b00000001 灭灭灭灭灭灭灭亮
    1 001 8’b00000010 灭灭灭灭灭灭亮灭
    1 010 8’b00000100 灭灭灭灭灭亮灭灭
    1 011 8’b00001000 灭灭灭灭亮灭灭灭
    1 100 8’b00010000 灭灭灭亮灭灭灭灭
    1 101 8’b00100000 灭灭亮灭灭灭灭灭
    1 110 8’b01000000 灭亮灭灭灭灭灭灭
    1 111 8’b10000000 亮灭灭灭灭灭灭灭
    0 灭灭灭灭灭灭灭灭

3-8译码器简化示意图
第二个实验中的3-8译码器,设计思路与第一个实验大致相同。主要还是要根据每次的输入,对输出端进行一一赋值。该题有个细微的区别是增添了使能端,当使能端为高电平时,译码器工作,否则不工作。当使能端为低电平时,所有的LED灯都不亮。当使能端为高电平时,根据输入的3位二进制码决定哪一个LED灯亮。例如输入000时,则第1个灯(标号为0)亮,即赋值为00000001;输入111时,则第8个灯(序号为7)亮,即赋值为10000000;其他的以此类推,便可实现。

  1. 任务三:
    对于第三个实验4位全加器的设计,原理很简单,可以直接使用assign语句对输出进行赋值。难点在于调用显示。本次采用调用任务的方式进行显示。首先考虑到4位的二进制数会超过9,因此输入和结果都应该分配两个7段数码管,一个显示个位,一个显示十位。另外就是在任务中对数码管的值进行分配时,可以通过取整和取余的操作,分别获取十位和个位的值,从而进行赋值。考虑到输入和结果均要调用一个任务,因此在任务中声明输入端的时候,可以声明为5位的,另外就是不设置进位输出,这样就可以实现共用。之后在主模块里分别调用任务即可实现显示功能。

步骤:

  1. 任务一:
    (1) 在开始菜单中打开 quartusII10.0 软件;
    (2)在 D 盘新建一个文件夹,命名为 sy21;
    (3) 在 quartusII10.0软件中新建一个工程,工程路径为D:/sy21,工程名为sy21;
    (4)新建一个文本文件;
    (5)输入程序。并进行管脚分配;
    (6)保存文件;
    (7)编译;
    (8)编译成功后,下载程序;
    (9)在线测试。程序下载到开发板后观察程序运行结果是否与预期的一样,若
    不一样则需要修改程序。
  2. 任务二:
    (1) 在开始菜单中打开 quartusII10.0 软件;
    (2)在 D 盘新建一个文件夹,命名为 sy22;
    (3) 在 quartusII10.0软件中新建一个工程,工程路径为D:/sy22,工程名为sy22;
    (4)新建一个文本文件;
    (5)输入程序。并进行管脚分配;
    (6)保存文件;
    (7)编译;
    (8)编译成功后,下载程序;
    (9)在线测试。程序下载到开发板后观察程序运行结果是否与预期的一样,若
    不一样则需要修改程序。
  3. 任务三:
    (1) 在开始菜单中打开 quartusII10.0 软件;
    (2)在 D 盘新建一个文件夹,命名为 sy23;
    (3) 在 quartusII10.0软件中新建一个工程,工程路径为D:/sy23,工程名为sy23;
    (4)新建一个文本文件;
    (5)输入程序。并进行管脚分配;
    (6)保存文件;
    (7)编译;
    (8)编译成功后,下载程序;
    (9)在线测试。程序下载到开发板后观察程序运行结果是否与预期的一样,若
    不一样则需要修改程序。

源程序清单以及注释:

  1. 任务一:
module sy21(decodeout,indec); //定义了sy21模块
(*chip_pin="G18,F22,E17,L26,L25,J22,H22"*)output reg[6:0] decodeout;//7个管脚一起 ,H22,J22,L25,L26,E17,F22,G18分别为HEX6、5、4、3、2、1、0的引脚号
(*chip_pin="AB28,AC28,AC27,AD27"*)input[3:0] indec;//4个管脚一起分配,AD27,AC27,AC28,AB28分别为SW3、2、1、0的引脚号
Always@(indec)BeginCase(indec)4’d0:decodeout = 7’b0000001; //显示04’d1:decodeout = 7’b1001111;//显示14’d2:decodeout = 7’b0010010;//显示24’d3:decodeout = 7’b0000110;//显示34’d4:decodeout = 7’b1001100;//显示44’d5:decodeout = 7’b0100100;//显示54’d6:decodeout = 7’b0100000;//显示64’d7:decodeout = 7’b0001111//显示74’d8:decodeout = 7’b0000000;//显示84’d9:decodeout = 7’b0000100;//显示9Default: decodeout = 7’b1111111; // 默认不亮EndcaseEnd
Endmodule//模块描述结束
  1. 任务二:
module sy22(in,out); //定义了sy22模块
(*chip_pin="AB28,AC28,AC27,AD27"*)input[3:0] in;    //4个管脚一起分配,AD27,AC27,AC28,AB28分别为SW3、2、1、0的引脚号
(*chip_pin="G19,F19,E19,F21,E18,J19,H19"*)output reg[7:0] out; //8个管脚一起分配,H19,J19,E18,F18,F21,E19,F19,G19分别为LED7、6、5、4、3、2、1、0的引脚号
Always(*)
Begin
If(in[3])//最高位为使能端,使能端有效的情况
begin
Case(in[2:0])
3’d0:out =8’b00000001;//序号为0的灯亮
3’d1:out =8’b00000010;//序号为1的灯亮
3’d2:out =8’b00000100;//序号为2的灯亮
3’d3:out =8’b00001000;//序号为3的灯亮
3’d4:out =8’b00010000;//序号为4的灯亮
3’d5:out =8’b00100000;//序号为5的灯亮
3’d6:out =8’b01000000;//序号为6的灯亮
3’d7:out =8’b10000000;//序号为7的灯亮
Endcase
End
Else//使能端无效
out=8'b00000000;              //都不亮
Endmodule
  1. 任务三:
module sy23(a,b,cin,da,db,dout);
(*chip_pin="Y23,Y24,AA22,AA23"*) input [3:0]a;
(*chip_pin="AA24,AB23,AB24,AC24"*) input [3:0]b;
(*chip_pin="AB25"*) input cin;
(*chip_pin="AD17,AE17,AG17,AH17,AF17,AG18,AA14,AA17,AB16,AA16,AB17,AB15,AA15,AC17"*) output [13:0]da;
(*chip_pin="AD18,AC18,AB18,AH19,AG19,AF18,AH18,AB19,AA19,AG21,AH21,AE19,AF19,AE18"*) output [13:0]db;
(*chip_pin="V21,U21,AB20,AA21,AD24,AF23,Y19,AA25,AA26,Y25,W26,Y26,W27,W28"*) output  [13:0]dout;
wire [4:0]out;
assignout=a+b+cin; // 相加结果display m1 (a,da); // 显示第一个数display m2 (b,db); // 显示第二个数display m3 (out,dout);// 显示结果
endmodulemodule display(din,Dout);
input [4:0] din;
output reg [13:0]Dout;
always@(*)begincase(din)5'd0: Dout=14'b00000010000001; //显示05'd1: Dout=14'b00000011001111; //显示15'd2: Dout=14'b00000010010010; //显示25'd3: Dout=14'b00000010000110; //显示35'd4: Dout=14'b00000011001100; //显示45'd5: Dout=14'b00000010100100; //显示55'd6: Dout=14'b00000010100000; //显示65'd7: Dout=14'b00000010001111; //显示75'd8: Dout=14'b00000010000000; //显示85'd9: Dout=14'b00000010000100; //显示95'd10: Dout=14'b10011110000001; //显示105'd11: Dout=14'b10011111001111; //显示115'd12: Dout=14'b10011110010010; //显示125'd13: Dout=14'b10011110000110; //显示135'd14: Dout=14'b10011111001100; //显示145'd15: Dout=14'b10011110100100; //显示155'd16: Dout=14'b10011110100100; //显示165'd17: Dout=14'b10011110100100; //显示175'd18: Dout=14'b10011110100100; //显示185'd19: Dout=14'b10011110100100; //显示195'd20: Dout=14'b00100100000001; //显示205'd21: Dout=14'b00100101001111; //显示215'd22: Dout=14'b00100100010010; //显示225'd23: Dout=14'b00100100000110; //显示235'd24: Dout=14'b00100101001100; //显示245'd25: Dout=14'b00100100100100; //显示255'd26: Dout=14'b00100100100000; //显示265'd27: Dout=14'b00100100001111; //显示275'd28: Dout=14'b00100100000000; //显示285'd29: Dout=14'b00100100000100; //显示295'd30: Dout=14'b00001100000001; //显示305'd31: Dout=14'b00001101001111; //显示31endcaseend
endmodule

实验结果与分析

实验结果

  1. 任务一:










  2. 任务二:



  3. 任务三:






实验结果分析

任务一:
代码编译通过。七段数码管成功呈现出1~9位数字。
任务二:
代码编译通过。能够通过拨动开关来体现结果。
任务三:
代码编译通过。全加器的结果能够成功显示、

EDA技术试验二:组合逻辑电路设计、仿真与实现实验相关推荐

  1. 实验二 组合逻辑电路设计;实验三 时序逻辑电路设计

    文章目录 实验二 组合逻辑电路设计实验报告 实验三 时序逻辑电路设计实验报告 实验二 组合逻辑电路设计实验报告 一.实验目的 1.加深理解组合逻辑电路的工作原理. 2.掌握组合逻辑电路的设计方法. 3 ...

  2. 实验二 组合逻辑电路设计

    2.1实验目的 熟悉Vivado软件开发环境,学会设计组合逻辑电路.学会查看RTL原理图.实现并仿真: 1)五输入优先编码器: 2)带使能信号的2-4译码器: 3)带使能信号的四裁判打分器. 2.2实 ...

  3. 集成电路设计与集成系统和计算机科学与技术,2019年集成电路设计与集成系统本科专业怎么样?...

    2019年集成电路设计与集成系统本科专业怎么样?就业方向和就业前景如何? 专业代码:080710T 修业年限:四年 学科门类:工学 专业类:电子信息类 集成电路设计与集成系统专业怎么样? 集成电路设计 ...

  4. 组合逻辑电路设计、仿真与实现

    文章目录 一.实验目的 二.实验任务及要求 三.实验原理与步骤 四.实验结果与分析 一.实验目的 1.掌握常用组合逻辑电路的 EDA 设计方法: 2.熟练掌握基于 QuartusII 集成开发环境的组 ...

  5. EDA技术 一:EDA技术概况及大规模可编程逻辑器件

    标题第一章:EDA概况 1.EDA发展阶段 1.早期电子CAD阶段 20世纪70年代,EDA技术发展初期,利用计算机,二维图形编辑与分析的CAD工具,完成布局布线等高度重复性的繁杂工作. 2.20世纪 ...

  6. 【数字逻辑与EDA技术】verilog HDL语法-期末考试重点总结

    一.相关术语 BST(Boundary Scan Test)边界扫描测试 CAD(Computer Aided Design) 计算机辅助设计 CAE(Computer Aided Engineeri ...

  7. 简述基于EDA技术的FPGA设计

    物联网.人工智能.大数据等新兴技术的推动,集成电路技术和计算机技术得到蓬勃发展.电子产品设计系统日趋数字化.复杂化和大规模集成化,各种电子系统的设计软件应运而生.在这些专业化软件中,EDA(Elect ...

  8. EDA技术的发展与应用 外文翻译

    英文资料及中文翻译 Development and application of EDA technology EDA (Electronics Design Automation) technolo ...

  9. EDA技术课后题答案

    第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系?   P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的 ...

最新文章

  1. 导入sql时出现Invalid default value for ‘create_time‘报错处理方法
  2. Java并发机制的底层实现原理
  3. 005_JavaScript使用
  4. mysql 126_MySQL教程126-MySQL事务隔离级别
  5. 02 | 日志系统:一条SQL更新语句是如何执行的? 笔记(转)
  6. 关于直播视频平台与监控视频平台技术架构方案
  7. Python使用正则表达式检查合法IP地址
  8. gemfire资料网址
  9. 002649:springboot下mybatis运行原理
  10. atitit.身份认证解决方案attilax总结
  11. Visio的下载和安装
  12. iPhone大小的盒子服务器Cubieboard
  13. SQL列转行/行转列
  14. 高仿网易评论列表效果之界面生成
  15. 北京地铁乘坐路线查询
  16. WinRAR v5.71 简体中文正式版
  17. 【异常】git提示Ask a project Owner or Maintainer to create a default branch
  18. mqtt连接百度天工物接入平台
  19. Android 删除图片后刷新媒体库
  20. 使用PyQt绘制精美的股票行情分时线图

热门文章

  1. shell script if嵌套for循环脚本
  2. java 创建用户界面_建立图形用户界面 JAVA实验
  3. LeetCode——868. 二进制间距
  4. github加速神器
  5. OpenCV-图片叠加
  6. 形式化方法-- petri net
  7. Android 集成facebook 登录和分享
  8. 网络模型(ISO,TCP/IP)
  9. 支付宝app支付提示 系统繁忙,请稍后重试
  10. 关于门控时钟的毛刺解决