搜档网
当前位置:搜档网 › 数字逻辑实验报告-Verilog时序逻辑设计

数字逻辑实验报告-Verilog时序逻辑设计

数字逻辑实验报告-Verilog时序逻辑设计
数字逻辑实验报告-Verilog时序逻辑设计

电子科技大学

实验报告

学生姓名:任彦璟学号:2015040101018 指导教师:吉家成米源王华

一、实验项目名称:Verilog时序逻辑设计

二、实验目的:

掌握边沿D触发器74x74、同步计数器74x163、4位通用移位寄存器74x194,的工作原理。

设计移位寄存器74x194设计3位最大序列长度线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)计数器。

设计同步计数器74x163 。

三、实验内容:

1.设计边沿D触发器74x74。

2.设计通用移位寄存器74x194。

3.采用1片74x194和其它小规模逻辑门设计3位LFSR计数器。

4.设计4位同步计数器74x163。

四、实验原理:

74x74逻辑电路图

CLK_D CLR_L_D

S1_L

S1_H S0_L

S0_H

w1

w2

w3

w4

w5

w6

w7

w8

w9

w10

w11

w12

w13

w14

w15

w16

w17

w18

w19

w20 74x194逻辑电路图

3位LFSR逻辑电路图

74x163逻辑电路图

上图的设计可以采用门级描述,也可以采用教材《数字设计—原理与实践》(第4版)第525页的表8-20中的行为描述

五、实验器材(设备、元器件):

PC 机、Windows XP 、Anvyl 或Nexys3开发板、Xilinx ISE 14.7开发工具、Digilent Adept 下载工具。

六、实验步骤:

实验步骤包括:建立新工程,设计代码与输入,设计测试文件,设置仿真,查看波形,约束与实现、生成流代码与下载调试。

七、关键源代

码及波形图: 1.D 触发器的Verilog 代码 源码如下

module vr74x74(CLK, D, PR_L, CLR_L, Q, QN);

input CLK, D, PR_L, CLR_L ;

output Q, QN ;

wire w1, w2, w3, w4 ;

nand (w1, PR_L, w2, w4);

nand (w2, CLR_L, w1, CLK) ;

nand (w3, w2, CLK, w4) ;

nand (w4, CLR_L, w3, D) ;

nand (Q, PR_L, w2, QN);

nand (QN, Q, w3, CLR_L);

endmodule

检查输入输出关系,设计无误。2.4位通用移位寄存器74x194 源码如下:

module

Vr74x194(CLK,CLR_L,LIN,RIN,S1,S0,A,B,C,D,Q A,QB,QC,QD);

input CLK,CLR_L,LIN,RIN,S1,S0,A,B,C,D ;

output QA,QB,QC,QD ;

wire CLK_D ;

wire CLR_L_D ;

wire S1_L,S1_H;

wire S0_L,S0_H;

wire QAN,QBN,QCN,QDN ;

wire

w1,w2,w3,w4,w5,w6,w7,w8,w9,w10;

wire

w11,w12,w13,w14,w15,w16,w17,w18,w19, w20;

buf(CLK_D,CLK);

buf(CLR_L_D,CLR_L);

not(m1,S1);

not(m0,S0);

and(n1,S0,m1,RIN);

and(n2,S0,S1,A);

and(n3,m0,m1,QA); and(n5,S0,m1,QA);

and(n6,S0,S1,B);

and(n7,m0,m1,QB);

and(n8,m0,S1,QC);

and(n9,S0,m1,QB);

and(n10,S0,S1,C);

and(n11,m0,m1,QC);

and(n12,m0,S1,QD);

and(n13,S0,m1,QC);

and(n14,S0,S1,D);

and(n15,m0,m1,QD);

and(n16,m0,S1,LIN);

or(p1,n1,n2,n3,n4);

or(p2,n5,n6,n7,n8);

or(p3,n9,n10,n11,n12);

or(p4,n13,n14,n15,n16);

vr74x74

q1(CLK_D,p1,1'b1,CLR_L_D,QA,QAN);

vr74x74

q2(CLK_D,p2,1'b1,CLR_L_D,QB,QBN);

vr74x74

q3(CLK_D,p3,1'b1,CLR_L_D,QC,QCN);

vr74x74

q4(CLK_D,p4,1'b1,CLR_L_D,QD,QDN); endmodule

仿真结果如下图所示

检验输入输出结果正常,设计无误。

3.3位LFSR计数器

源码如下:

module LFSR( CLK,RESET,X2,X1,X0);

input CLK,RESET;

output X2,X1,X0;

wire w1,w3,w6 ;

Vr74x194 U1(.CLK(CLK),

.CLR_L(1'b1),

.RIN(w6),

.S1(RESET),

.S0(1'b1),

.A(1'b1),

.B(1'b0),

.C(1'b0),

.D(1'b0),

.QA(X2),

.QB(X1) ,

.QC(X0)

);

xor (w3,X1,X0) ;

nor (w1,X2,X1) ;

xor (w6,w1,w3) ;

endmodule

仿真结果如下图所示

检验输入输出结果正常,设计无误。

4. 74x163计数器

源码如下 and(w21,w20,w25); not(w26,ENT); nor(w1,LD_L,CLR); nor(w2,w1,CLR); xor(w4,w25,~QN[0]); xor(w10,w9,~QN[1]); xor(w16,w15,~QN[2]); xor(w22,w21,~QN[3]); and(w3,w1,A); and(w5,w2,w4); and(w7,w1,B); and(w11,w2,w10); and(w13,w1,C); and(w17,w2,w16); and(w19,w1,D); and(w23,w2,w22); or(w6,w3,w5); or(w12,w7,w11); or(w18,w13,w17); or(w24,w19,w23); vr74x74 U1 (D[0], CLK, 1, CLR_L, Q[0], QN[0]); vr74x74 U2 (D[1], CLK, 1, CLR_L, Q[1], QN[1]); vr74x74 U3 (D[2], CLK, 1, CLR_L, Q[2], QN[2]); vr74x74 U4 (D[3], CLK, 1, CLR_L, Q[3], QN[3]); endmodule

module

Vr74x163(CLK,CLR_L,LD_L,ENP ,ENT,D,Q,RC

O

);

input CLK,CLR_L,LD_L,ENP ,ENT;

input [3:0]D;

output [3:0]Q;

output RCO;

wire

w1,w2,w3,w4,w5,w6,w7,w8,w9,w10;

wire

w11,w12,w13,w14,w15,w16,w17,w18,w1

9,w20;

wire w21,w22,w23,w24,w25,w26;

wire CK;

wire CLR;

wire [3:0]QN;

wire CLK1;

buf(CLK1,CLK);

not(CLR,CLR_L);

not(w8,QN[0]);

nor(w14,QN[1],QN[0]);

nor(w20,QN[2],QN[1],QN[0]);

and(w25,ENP ,ENT);

and(w9,w8,w25);

and(w15,w14,w25);

3位LFSR计数器顶层设计模块

module lfsr_8_main(

input CLK ,

input RESET ,

output LED2 , LED1 , LED0

);

wire CLK_1Hz ;

counter_100M u1( CLK , CLK_1Hz ) ;

LFSR_8 u2(CLK_1Hz , RESET , LED2 , LED1 , LED0 );

endmodule

仿真结果如下图所示

八、实验结论:

边沿D触发器负跳沿触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP 高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。而边沿触发器允许在CP触发沿来到前一瞬间加入输入信号。移位寄存器D、2D、1D、0D为并行输入端;3Q、2Q、1Q、0Q为并行输出端;RS为右移串行输入端;LS为左移串行输入端1S、0S为操作模式控制端;RC为直接无条件清零端;CP为时钟脉冲输入端。74LS194有5种不同操作模式:并行送数寄存;右移(方向由3Q→0Q);左移(方向由0Q→3Q);保持及清零。对于同步计数器,由于时钟脉冲同时作用于各个触发器,克服了异步触发器所遇到的触发器逐级延迟问题,于是大大提高了计数器工作频率,各级触发器输出相差小,译码时能避免出现尖峰;但是如果同步计数器级数增加,就会使得计数脉冲的负载加重。

九、总结及心得体会:

在这此次试验中,根据边沿D触发器74x74的原理图编写设计和仿真模块;根据通用移位寄存器74x194的原理图编写设计和仿真模块;采用1片74x194和其它小规模逻辑门设计3位LFSR计数器,编写设计和仿真了模块;根据4位同步计数器74x163的原理图编写设计和仿真了模块;将输入为100MHz的系统时钟采用7片74x163和其它小规模逻辑门设计了1Hz的数字信号;在FPGA开发板上调试了3位LFSR计数器。

十、对本实验过程及方法、手段的改进建议:

报告评分:

指导教师签字:

相关主题