文章目录

  • 一、组合逻辑电路
    • (1)实验目的
    • (2)实验原理或设计过程
      • ①4选1数据选择器
      • ②3-8译码器
      • ③8-3优先编码器
      • ④十六进制七段LED显示译码器
    • (3)实验数据分析和实验结果
    • (4)仿真波形图
  • 二、时序逻辑电路
    • (1)实验目的
    • (2)实验原理或设计过程
      • ①74161计数器
      • ②D触发器(异步复位与同步时能、异步置位与异步复位)
      • ③模M计数器(实现模5计数器,五个状态为3,4,5,6,7)
      • ④移位寄存器74194
    • (3)实验数据分析和实验结果

一、组合逻辑电路

(1)实验目的

5、使用ISE软件完成组合逻辑设计的输入并仿真
6、掌握Testbech中组合逻辑测试文件的写法
7、下载并测试实现的逻辑功能

(2)实验原理或设计过程

①4选1数据选择器

  • RTL代码
module m4_1(in0,in1,in2,in3,S,F);input in0,in1,in2,in3;   input [1:0]S;              //定义输入                  output reg F;               //定义输出,F定义为reg型always @*                    //敏感词使用*begincase(S)                    //case语句实现选择输出2'b00:F<=in0;2'b01:F<=in1;2'b10:F<=in2;2'b11:F<=in3;      //实现输入S=00、01、10、11时,输出                                     in0,in1,in2,in3endcaseendendmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module m4_1_tb;reg in0,in1,in2,in3;reg [1:0] S;wire F;m4_1 uut (.in0(in0),.in1(in1),.in2(in2),.in3(in3),.S(S), .F(F));                      //例化模块initial beginin0=0;in1=0;in2=0;in3=0;S = 0;          //初始化输入#100;fork                //fork-join实现并行输入repeat(5) #400 S=S+1;        //每400ns S+1repeat(100)    #20 in0=~in0;  repeat(50)  #40 in1=~in1;repeat(25)    #80 in2=~in2;repeat(10)    #200 in3=~in3; //输入in0,in1,in2,in3信号为不                                             同的脉冲信号,方便选择后观察joinend
endmodule

②3-8译码器

  • RTL代码
module d3_8(D,Y);input [2:0]D;                       //定义三位输入output reg[7:0]Y;                   //定义八位输出always@(D)                         //使用always块,敏感词选用Dbegincase(D)                           //case语句实现3-8过程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; //输入和输出一一选择对应endcaseend
endmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module d3_8_tb;reg [2:0] D;wire [7:0] Y;d3_8 uut (.D(D), .Y(Y));initial beginD = 0;#100;               //进行输入端口初始化repeat(10)       //重复十次beginD=3'b000;#20;D=3'b001;#20;D=3'b010;#20;D=3'b011;#20;D=3'b100;#20;D=3'b101;#20;D=3'b110;#20;D=3'b111;#20;         //依次使D等于0-7,观察输出endend
endmodule

③8-3优先编码器

  • RTL代码
module en8_3(en,I,Y,Yx,Yn);input en;input [7:0]I;output reg[2:0]Y;output reg Yx,Yn;always@(I)beginif(!en)beginY=3'b111;Yx=1;Yn=1;endelse beginif(I==8'b1111_1111)beginY=3'b111;Yx=1;Yn=0;endelsebeginYx=0;Yn=1;if(I[7]==0)Y=3'b000;else if(I[6]==0)Y=3'b001;else if(I[5]==0)Y=3'b010;else if(I[4]==0)Y=3'b011;else if(I[3]==0)Y=3'b100;else if(I[2]==0)Y=3'b101;else if(I[1]==0)Y=3'b110;else if(I[0]==0)Y=3'b111;endendendendmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module en8_3_tb;reg en;reg [7:0] I;wire [2:0] Y;wire Yx;wire Yn;en8_3 uut (.en(en), .I(I), .Y(Y), .Yx(Yx), .Yn(Yn));initial beginen = 0;I = 0;#100;en=1;repeat(20)beginI=8'b1111_1111;#20;I=8'b0111_1111;#20;I=8'b1011_1111;#20;I=8'b1101_1111;#20;I=8'b1110_1111;#20;I=8'b1111_0111;#20;I=8'b1111_1011;#20;I=8'b1111_1101;#20;I=8'b1111_1110;#20;endendendmodule

④十六进制七段LED显示译码器

  • RTL代码
module led7(D,Y,en);input [3:0]D;input en;output reg[6:0]Y;always@(D)beginif(!en)Y=7'b000_0000;elsecase(D)4'b0000:Y=7'b011_1111;4'b0001:Y=7'b000_0110;4'b0010:Y=7'b101_1011;4'b0011:Y=7'b100_1111;4'b0100:Y=7'b110_0110;4'b0101:Y=7'b110_1101;4'b0110:Y=7'b111_1101;4'b0111:Y=7'b000_0111;4'b1000:Y=7'b111_1111;4'b1001:Y=7'b110_1111;4'b1010:Y=7'b111_0111;4'b1011:Y=7'b111_1100;4'b1100:Y=7'b011_1001;4'b1101:Y=7'b101_1110;4'b1110:Y=7'b111_1001;4'b1111:Y=7'b111_0001;endcaseendendmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module led7_tb;reg [3:0] D;reg en;wire [6:0] Y;led7 uut (.D(D), .Y(Y), .en(en));initial beginD = 0;en = 0;#100;en=1;repeat(10)beginD=4'b0000;#20;D=4'b0001;#20;D=4'b0010;#20;D=4'b0011;#20;D=4'b0100;#20;D=4'b0101;#20;D=4'b0110;#20;D=4'b0111;#20;D=4'b1000;#20;D=4'b1001;#20;D=4'b1010;#20;D=4'b1011;#20;D=4'b1100;#20;D=4'b1101;#20;D=4'b1110;#20;D=4'b1111;#20;endend
endmodule

(3)实验数据分析和实验结果

1、四选一数据选择器波形图:

2、3-8译码器波形图:

3、8-3优先编码器波形图:

(4)仿真波形图

1、四选一数据选择器仿真图:

2、3-8译码器仿真图:

3、8-3优先编码器仿真图:

4、十六进制7段led显示译码器:

二、时序逻辑电路

(1)实验目的

1、使用ISE软件完成时序逻辑电路的设计输入并仿真
2、掌握tb中时序逻辑测试文件的写法
3、下载并测试实现的逻辑电路

(2)实验原理或设计过程

①74161计数器

  • RTL代码
module and74161(CR,ld,P,T,clk,Q,rst,A,B,C,D);input CR,ld,P,T,rst;input clk;input A,B,C,D;output reg[3:0]Q;always @(posedge clk,negedge rst)beginif(rst==0)Q<=4'b0;else if(CR==0)Q<=4'b0;else if(CR&ld==0)Q<={A,B,C,D};else if(CR&ld&P&T)Q<=Q+1;else if(CR&ld&P==0)Q<=Q;else if(CR&ld&T==0)Q<=Q;endendmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module and74161_tb;reg CR;reg ld;reg P;reg T;reg clk;reg A,B,C,D;reg rst;wire [3:0] Q;and74161 uut (.CR(CR), .ld(ld), .P(P), .T(T), .clk(clk), .Q(Q), .A(A),.B(B),.C(C),.D(D),.rst(rst));initial beginCR = 0;ld = 0;P = 0;T = 0;clk = 0;A=0;B=0;C=0;D=0;rst=0;#100;A=0; B=1;C=0;D=1;rst=1;CR=1;ld=0;#50;           //ABCDrst=1;CR=0;ld=1;P=1;T=1;#20;         //清0rst=1;CR=1;ld=0;P=0;T=0;#20;           //清0rst=1;CR=1;ld=1;P=0;T=1;#20;   rst=1;CR=1;ld=1;P=1;T=0;#20;           rst=1;CR=1;ld=1;P=1;T=1;#2000;endalways #7 clk=~clk;
endmodule

②D触发器(异步复位与同步时能、异步置位与异步复位)

  • RTL代码
module dff(D,EN,CLK,sd,rd,Q,QN);input D,EN,CLK,sd,rd;output reg Q;output reg QN;always @(posedge CLK)beginif(EN&sd==0)beginQ<=1;QN<=0;endelse if(EN&sd==1&rd==0)beginQ<=0;QN<=1;endelse if(EN&sd==1&rd==1)beginQ<=D;QN<=~D;endelse beginQ<=Q;QN<=QN;endendendmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module dff_tb;reg D;reg EN;reg CLK;reg sd;reg rd;wire Q;wire QN;dff uut (.D(D), .EN(EN), .CLK(CLK), .sd(sd), .rd(rd), .Q(Q), .QN(QN));initial beginD = 0;EN = 0;CLK = 0;sd = 0;rd = 0;#100;EN=1;endinitialforkforever #100 rd=rd+1;forever  #200 sd=sd+1;forever #20 D=D+1;joinalways #10 CLK=~CLK;            //输入时钟endmodule

③模M计数器(实现模5计数器,五个状态为3,4,5,6,7)

  • RTL代码
module counter5(en,clk,cnt,co,rst_n);input en;input clk;input rst_n;output reg [3:0]cnt;output co;always @(posedge clk,negedge rst_n)beginif(!rst_n)cnt<=4'b0011;else if(en&cnt==4'b0111)cnt<=4'b0011;else if(en)cnt<=cnt+1'b1;elsecnt<=cnt;endassign co=cnt[0]&cnt[1]&cnt[2];endmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module counter5_tb;reg en;reg clk;reg rst_n;wire [3:0] cnt;wire co;counter5 uut (.en(en), .clk(clk), .cnt(cnt), .co(co), .rst_n(rst_n));initial beginen = 0;clk = 0;rst_n = 0;#100;en=1;rst_n=1;endalways #7 clk=~clk;endmodule

④移位寄存器74194

  • RTL代码
module reg74194(cr,clk,sr,sl,M,Q,D);input cr,clk,sr,sl;input [3:0]D;input [1:0]M;output reg[3:0]Q;always @(posedge clk)beginif(!cr)Q<=4'b0000;else if(cr&M==2'b11)Q<=D;else if(cr&M==2'b01)beginQ[2:0]<=Q[3:1];Q[3]<=sr;endelse if(cr&M==2'b10)beginQ[3:1]<=Q[2:0];Q[0]<=sl;endelse Q<=Q;endendmodule
  • 仿真测试模块代码
`timescale 1ns / 1ps
module reg74194_tb;reg cr;reg clk;reg sr;reg sl;reg [1:0] M;reg [3:0] D;wire [3:0] Q;reg74194 uut (.cr(cr), .clk(clk), .sr(sr), .sl(sl), .M(M), .Q(Q), .D(D));initial begincr = 0;clk = 0;sr = 0;sl = 0;M = 0;D = 0;#100;cr=1;M=2'b11;D=4'b1011;#50;cr=1;M=2'b01;sr=1'b1;#50;cr=1;M=2'b01;sr=1'b0;#50;cr=1;M=2'b10;sl=1'b1;#50;cr=1;M=2'b10;sl=1'b0;#50;cr=1;M=2'b00;#50;endalways #7 clk=~clk;
endmodule

(3)实验数据分析和实验结果

1、74161仿真波形图:

2、D触发器(异步复位与同步使能、异步置位与异步复位)

3、模M计数器(实现模5计数器,五个状态为3,4,5,6,7)

4、移位寄存器74194
左移:

右移:

南京邮电大学电工电子(数电)实验报告——组合逻辑电路 时序逻辑电路相关推荐

  1. 南京邮电大学电工电子基础B实验六(组合逻辑电路)

    一. 实验目的 1.掌握基本门电路的实际应用: 2.掌握基本门多余端的处理方法: 3.验证所设计电路的逻辑功能: 4.判断.观察组合逻辑电路险象并消除险象的方法: 二. 主要仪器设备及软件 硬件:逻辑 ...

  2. 南京邮电大学电工电子基础B实验五(串联谐振电路)

    RLC串联谐振电路 一. 实验目的 1.研究RLC串联谐振电路的幅频特性: 2.加深理解品质因数Q与电路其他参量的关系: 二. 主要仪器设备及软件 硬件:函数信号发生器.示波器.万用表.电阻.电感.电 ...

  3. 南京邮电大学电工电子基础B实验四(戴维南与诺顿定理)

    戴维南与诺顿定理 一. 实验目的 1.学习几种常用的等效电源的测量方法 2.比较几种测量方法所适用的情况 3.分析各种方法的误差大小及其产生的原因 二. 主要仪器设备及软件 硬件:交流电源.电容.电感 ...

  4. 数电实验报告实验一_大二下学期的两三事之数电实验amp;课设

    数电实验&课设 叮 写在前面 这学期的数电实验老师是陈W老师.上学期的模电,选过一次他的课,线下教学,老师讲课游刃自如,点到为止,但又醍醐灌顶:这学期线上教学,可能是软件运用不熟练,他多少有些 ...

  5. 南京邮电大学通达学院c语言实验报告,南京邮电大学通达学院c语言程序报告.docx...

    南京邮电大学通达学院c语言程序报告 南京邮电大学通达学院程序设计(上机)报告 题 目: R015M P008E 专 业 学 生 姓 名 班 级 学 号 指 导 教 师 日 期 2015年5月 评 分 ...

  6. 南京邮电大学通达学院c语言实验报告,南京邮电大学通达学院c语言程序报告..docx...

    南京邮电大学通达学院c语言程序报告. 南京邮电大学通达学院程序设计(上机)报告题 目: R015M P008E专 业 学 生 姓 名 班 级 学 号 指 导 教 师 日 期 2015年5月 评 分 细 ...

  7. 数电实验(组合逻辑电路、时序电路,555定时器)

    本文章为数电实验整理内容,其电路仿真资料可以在我的资料中自行下载,其包括所说内容全部仿真内容. 一.组合逻辑电路的设计与验证 利用 二输入四与非门74LS00和二输入四异或门74LS86和LED来达到 ...

  8. 数电学习(六、时序逻辑电路)(二)

    文章目录 若干常用的时序逻辑电路 寄存器 移位寄存器 计数器 同步计数器 同步二进制计数器 同步二进制加法计数器 经典设计 74161 同步二进制减法计数器 同步二进制加减计数器 同步十进制计数器 异 ...

  9. 数电学习(六、时序逻辑电路)(三)

    文章目录 时序逻辑电路的设计方法 同步时序逻辑电路的设计方法 一般步骤 改进步骤 例:蚂蚁走迷宫 背景 分析 继续编码状态,然后写出状态图,然后卡诺图化简,得到方程 设计总结 时序逻辑电路的设计方法 ...

最新文章

  1. 亲测_精简版Fiddler抓包手机端GET请求过程.
  2. 基于Licode的WebRTC全球分布式架构
  3. 森近林之助【字符串处理】
  4. python扫描端口脚本_python写的端口扫描脚本
  5. 吃货开发 阶段01 类的定义 方法的布局 0925
  6. 【报告分享】微信视频号新机遇白皮书.pdf
  7. java 返回值给c_Java有陷阱,用时需谨慎——慎用入参做返回值
  8. Geotools之“Hello World”——打开本地shp文件并显示
  9. Hyperledger下子项目
  10. Python多进程之Pool
  11. java 各省市区代码表
  12. Googel浏览器添加百度搜索引擎
  13. 使用sysprep.exe遇到windows无法完成系统配置。若要尝试恢复配置,请重新启动计算机
  14. indesign中如何锁定零点_indesign基础知识教程【indesign软件基础知识技巧】
  15. 【STM32】NRF24L01模块的收发调试
  16. 关于微信卡券47001的问题
  17. 数据库系统概念-第六版 - charter 1 - 笔记
  18. 经典Windows编程书单
  19. Java 字符串分割三种方法
  20. JavaScript中的ES6语法

热门文章

  1. 收发一体超声波测距离传感器模块_超声波模块HC-SR04简介以及编程
  2. 满分室间质评之GATK Somatic SNV+Indels+CNV+SV(上)
  3. C语言的驱动法编程详细解析
  4. 华为弹性云服务器ECS,协同优化网络产业信息
  5. 开学需要带什么?宿舍必备爱用物清单
  6. SlySoft.Game.Jackal.Pro.v3.0.0.5-YAG
  7. nvidia控制面板点了没反应win7_Win7系统打不开Nvidia控制面板提示“停止工作”怎么办...
  8. 明远智睿5G工业网关远程联动,打造一支“精锐部队”
  9. html自定义菜单按钮,自定义菜单:Menu button
  10. java 阶梯价格计算_【java】求阶梯型的服务费总和