基于Verilog的数字电路模拟实验

基于Verilog 的数字电路模拟实验

电子信息学院 10微电子1028402010 陈阵

实验一 3-8译码器Verilog 设计

实验时间:2012-11-16 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对3-8译码器的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真; 二、3-8译码器真值表

二、源代码

1、3-8译码器的设计代码 module decoder3_8(EN,out,in); input EN;

output[7:0] out; input[2:0] in; reg[7:0] out; always @(in) begin if(EN) case(in)

3'd0: out=8'b11111110;

3'd1: out=8'b11111101; 3'd2: out=8'b11111011; 3'd3: out=8'b11110111; 3'd4: out=8'b11101111; 3'd5: out=8'b11011111; 3'd6: out=8'b10111111; 3'd7: out=8'b01111111; endcase

else out=8'b11111111; end

endmodule

2、3-8译码器仿真程序的设计代码 `timescale 1ns/1ns

module test_decoder3_8; reg EN; reg[2:0]in; wire[7:0]out;

/*decoder3_8(EN,out,in); input EN;

output[7:0] out; input[2:0] in;*/

decoder3_8 M1(EN,out,in); initial begin:AB integer I; EN=0;

#100 EN=1;

for(I=0;I

#100 $display("EN=%b,in=%D,out=%b",EN,in,out); End

三、仿真结果及分析

实验二十进制计数器

实验时间:2012-11-16 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对十进制计数器的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真. 二、源代码

1、十进制计数器的设计代码

module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK,EN,RST,LOAD; input [3:0] DATA; output [3:0] DOUT; output COUT; reg [3:0] Q1; reg COUT;

assign DOUT = Q1;

always @(posedge CLK or negedge RST) begin if (!RST) Q1

always @(Q1)

if (Q1==4'h9) COUT = 1'b1; else COUT = 1'b0;

endmodule

2、十进制计数器仿真程序的设计代码 `timescale 1ns/1ns module test_cnt10; reg CLK,RST,EN,LOAD; reg[3:0] DATA; wire[3:0] DOUT; wire CIUT;

cnt10 M1(CLK,RST,EN,LOAD,COUT,DOUT,DATA); initial begin CLK=0; RST=0; LOAD=0;

DATA=4'D5; EN=1;

#90 RST=1'b1;LOAD=1'b0; #90 LOAD=1'b1; #1500 $stop; end

always #50 CLK=!CLK; always @(DOUT)

$display("DOUT=%d",DOUT,"COUT=%b",COUT); Endmodule 三、仿真结果及分析

实验三四位加法器及4-7译码器

实验时间:2012-11-23 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对四位加法器及4-7译码器的设计模块和验证模块进行书写和编译;

2、对编译好的模块进行仿真. 二、实验要求

设计程序使实现如下功能

:

三、源代码

1、一位加法器设计代码

module adder1(a,b,cin,cout,sum); inputa,b,cin; outputsum,cout;

assign {cout,sum}=a+b+cin; endmodule

2、四位加法器设计代码

module adder4 (cout,sum,ina,inb,cin); output[3:0] sum; outputcout;

input[3:0] ina,inb; inputcin;

assign {cout,sum}=ina+inb+cin; endmodule

3、四位加法器仿真程序设计代码 `timescale 1ns/1ns module test_adder4; reg[3:0] ina,inb; regcin; wirecout;

wire[3:0] sum;

wire[6:0] deout;

adder4 M1(cout,sum,ina,inb,cin); initial begin:ABC integer I;

for (I=0;I

{cin,inb,ina}=I;

#50 $monitor ("%d+%d+%d={%b,%d}",ina,inb,cin,cout,sum); end end

endmodule

4、4-7译码器设计代码 4-7译码器真值表

module decoder4_7 (dein,deout); output[6:0] deout; input[3:0] dein; reg[6:0] deout; always@(dein) begin case(dein)

4'd0:deout=7'b1111110; 4'd1:deout=7'b0110000; 4'd2:deout=7'b1101101; 4'd3:deout=7'b1111001; 4'd4:deout=7'b0110011; 4'd5:deout=7'b1011011; 4'd6:deout=7'b1011111; 4'd7:deout=7'b1110000; 4'd8:deout=7'b1111111; 4'd9:deout=7'b1111011; default:deout=7'bx;

endcase

end

endmodule

5、4-7译码器仿真程序设计代码 `timescale 1ns/1ns

module test_decoder4_7; reg[3:0] dein; wire[6:0] deout;

decoder4_7 M1(dein,deout); integer I; initial begin

for (I=0;I

#50 $display ("dein=%b",dein,"deout=%b",deout); end end

endmodule

四、仿真波形及分析

实验四 2-4译码器

实验时间:2012-11-23 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对2-4译码器的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真. 二、2-4译码器真值表

三、源代码

1、2-4译码器设计代码 module decoder2_4 (in,out); output[3:0] out; input[1:0] in; reg[3:0] out; always@(in) begin case(in)

2'd0:out=4'b0001; 2'd1:out=4'b0010; 2'd2:out=4'b0100; 2'd3:out=4'b1000; endcase end

endmodule

2、2-4译码器仿真程序设计代码 `timescale 1ns/1ns

module test_decoder2_4; reg[1:0] in; wire[3:0] out;

decoder2_4 M1(in,out);

initial begin:A integer I;

for (I=0;I

#50 $display ("in=%d",in,"out=%b",out); end end

endmodule

四、仿真波形及分析

实验五 ALU 组合电路实验

实验时间:2012-12-14 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对ALU 组合电路的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真. 二、实验要求

设计程序使实现如下电路功能

:

三、源代码

1、算术模块设计代码 module ALU1 (A,B,S0,Y1,Y2); input A,B,S0;

output [1:0]Y1,Y2; wire [1:0]Y1,Y2;

assign Y1=S0?(A-B):(A+B); assign Y2=S0?(A|B):(A&B); endmodule

2、逻辑模块设计代码

module MUX2_1(Y1,Y2,S1,F); input [1:0]Y1,Y2; input S1; output [1:0]F; wire [1:0] F;

assign F=S1?Y2:Y1; endmodule

3、ALU 设计代码

module ALU(A,B,S0,S1,F); input A,B,S0,S1; output [1:0]F; wire[1:0] Y1,Y2;

ALU1 U1(A,B,S0,Y1,Y2); MUX2_1 U2(Y1,Y2,S1,F); endmodule

4、仿真程序设计代码 `timescale 1ns/1ns module TEST_ALU;

reg A,B,S0,S1;

电子信息学院 10微电子 1028402010 陈阵

wire [1:0]F;

ALU M(A,B,S0,S1,F);

initial

begin

A=0;

B=0;

S0=0;

S1=0;

#200 S0=1;

#200 S1=1;

#200 S0=0;

end

always

#100A=~A;

always

#50B=~B;

Endmodule

四、仿真波形及分析

基于Verilog 的数字电路模拟实验

电子信息学院 10微电子1028402010 陈阵

实验一 3-8译码器Verilog 设计

实验时间:2012-11-16 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对3-8译码器的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真; 二、3-8译码器真值表

二、源代码

1、3-8译码器的设计代码 module decoder3_8(EN,out,in); input EN;

output[7:0] out; input[2:0] in; reg[7:0] out; always @(in) begin if(EN) case(in)

3'd0: out=8'b11111110;

3'd1: out=8'b11111101; 3'd2: out=8'b11111011; 3'd3: out=8'b11110111; 3'd4: out=8'b11101111; 3'd5: out=8'b11011111; 3'd6: out=8'b10111111; 3'd7: out=8'b01111111; endcase

else out=8'b11111111; end

endmodule

2、3-8译码器仿真程序的设计代码 `timescale 1ns/1ns

module test_decoder3_8; reg EN; reg[2:0]in; wire[7:0]out;

/*decoder3_8(EN,out,in); input EN;

output[7:0] out; input[2:0] in;*/

decoder3_8 M1(EN,out,in); initial begin:AB integer I; EN=0;

#100 EN=1;

for(I=0;I

#100 $display("EN=%b,in=%D,out=%b",EN,in,out); End

三、仿真结果及分析

实验二十进制计数器

实验时间:2012-11-16 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对十进制计数器的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真. 二、源代码

1、十进制计数器的设计代码

module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK,EN,RST,LOAD; input [3:0] DATA; output [3:0] DOUT; output COUT; reg [3:0] Q1; reg COUT;

assign DOUT = Q1;

always @(posedge CLK or negedge RST) begin if (!RST) Q1

always @(Q1)

if (Q1==4'h9) COUT = 1'b1; else COUT = 1'b0;

endmodule

2、十进制计数器仿真程序的设计代码 `timescale 1ns/1ns module test_cnt10; reg CLK,RST,EN,LOAD; reg[3:0] DATA; wire[3:0] DOUT; wire CIUT;

cnt10 M1(CLK,RST,EN,LOAD,COUT,DOUT,DATA); initial begin CLK=0; RST=0; LOAD=0;

DATA=4'D5; EN=1;

#90 RST=1'b1;LOAD=1'b0; #90 LOAD=1'b1; #1500 $stop; end

always #50 CLK=!CLK; always @(DOUT)

$display("DOUT=%d",DOUT,"COUT=%b",COUT); Endmodule 三、仿真结果及分析

实验三四位加法器及4-7译码器

实验时间:2012-11-23 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对四位加法器及4-7译码器的设计模块和验证模块进行书写和编译;

2、对编译好的模块进行仿真. 二、实验要求

设计程序使实现如下功能

:

三、源代码

1、一位加法器设计代码

module adder1(a,b,cin,cout,sum); inputa,b,cin; outputsum,cout;

assign {cout,sum}=a+b+cin; endmodule

2、四位加法器设计代码

module adder4 (cout,sum,ina,inb,cin); output[3:0] sum; outputcout;

input[3:0] ina,inb; inputcin;

assign {cout,sum}=ina+inb+cin; endmodule

3、四位加法器仿真程序设计代码 `timescale 1ns/1ns module test_adder4; reg[3:0] ina,inb; regcin; wirecout;

wire[3:0] sum;

wire[6:0] deout;

adder4 M1(cout,sum,ina,inb,cin); initial begin:ABC integer I;

for (I=0;I

{cin,inb,ina}=I;

#50 $monitor ("%d+%d+%d={%b,%d}",ina,inb,cin,cout,sum); end end

endmodule

4、4-7译码器设计代码 4-7译码器真值表

module decoder4_7 (dein,deout); output[6:0] deout; input[3:0] dein; reg[6:0] deout; always@(dein) begin case(dein)

4'd0:deout=7'b1111110; 4'd1:deout=7'b0110000; 4'd2:deout=7'b1101101; 4'd3:deout=7'b1111001; 4'd4:deout=7'b0110011; 4'd5:deout=7'b1011011; 4'd6:deout=7'b1011111; 4'd7:deout=7'b1110000; 4'd8:deout=7'b1111111; 4'd9:deout=7'b1111011; default:deout=7'bx;

endcase

end

endmodule

5、4-7译码器仿真程序设计代码 `timescale 1ns/1ns

module test_decoder4_7; reg[3:0] dein; wire[6:0] deout;

decoder4_7 M1(dein,deout); integer I; initial begin

for (I=0;I

#50 $display ("dein=%b",dein,"deout=%b",deout); end end

endmodule

四、仿真波形及分析

实验四 2-4译码器

实验时间:2012-11-23 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对2-4译码器的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真. 二、2-4译码器真值表

三、源代码

1、2-4译码器设计代码 module decoder2_4 (in,out); output[3:0] out; input[1:0] in; reg[3:0] out; always@(in) begin case(in)

2'd0:out=4'b0001; 2'd1:out=4'b0010; 2'd2:out=4'b0100; 2'd3:out=4'b1000; endcase end

endmodule

2、2-4译码器仿真程序设计代码 `timescale 1ns/1ns

module test_decoder2_4; reg[1:0] in; wire[3:0] out;

decoder2_4 M1(in,out);

initial begin:A integer I;

for (I=0;I

#50 $display ("in=%d",in,"out=%b",out); end end

endmodule

四、仿真波形及分析

实验五 ALU 组合电路实验

实验时间:2012-12-14 实验地点:电子信息楼218

指导老师:黄秋萍

一、实验内容

1、在ModelSim 软件中对ALU 组合电路的设计模块和验证模块进行书写和编译; 2、对编译好的模块进行仿真. 二、实验要求

设计程序使实现如下电路功能

:

三、源代码

1、算术模块设计代码 module ALU1 (A,B,S0,Y1,Y2); input A,B,S0;

output [1:0]Y1,Y2; wire [1:0]Y1,Y2;

assign Y1=S0?(A-B):(A+B); assign Y2=S0?(A|B):(A&B); endmodule

2、逻辑模块设计代码

module MUX2_1(Y1,Y2,S1,F); input [1:0]Y1,Y2; input S1; output [1:0]F; wire [1:0] F;

assign F=S1?Y2:Y1; endmodule

3、ALU 设计代码

module ALU(A,B,S0,S1,F); input A,B,S0,S1; output [1:0]F; wire[1:0] Y1,Y2;

ALU1 U1(A,B,S0,Y1,Y2); MUX2_1 U2(Y1,Y2,S1,F); endmodule

4、仿真程序设计代码 `timescale 1ns/1ns module TEST_ALU;

reg A,B,S0,S1;

电子信息学院 10微电子 1028402010 陈阵

wire [1:0]F;

ALU M(A,B,S0,S1,F);

initial

begin

A=0;

B=0;

S0=0;

S1=0;

#200 S0=1;

#200 S1=1;

#200 S0=0;

end

always

#100A=~A;

always

#50B=~B;

Endmodule

四、仿真波形及分析


相关文章

  • FPGA频率计实验报告
  • 数字频率计 用VHDL 语言设计实现基于FPGA 的数字频率计 学校: 学院: 姓名: 学号: 实验室: 实验日期: 摘要 本文介绍了一种基于FPGA 的数字频率的实现方法.该设计采用硬件描述语言VHDL ,在软件开发平台ISE 上完成.该 ...查看


  • 电力系统仿真软件综述
  • 一.PSAPAC 简介: 由美国EPRI开发,是一个全面分析电力系统静态和动态性能的软件工具. 功能:DYNRED(Dynamic Reduction Program):网络化简与系统的动态等值,保留需要的节点. LOADSYN(Load ...查看


  • 频率可变的任意波形发生器
  • 深 圳 大 学 实 验 报 告 课程名称: Verilog使用及其应用 实验名称: 频率可变的任意波形发生器 学院: 电子科学与技术学院 一. 前言 波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常 ...查看


  • 对大学生的的建议
  • 对于初学者来说,要学的知识点很多,到底从哪里下手,人们常常感到非常迷茫. 大一学生先从C语言开始入门,在大一阶段由于对计算机还非常陌生,因此不可能写出一个具有完整图形界面的软件,重点以"与硬件无关的计算方法.数据结构"为 ...查看


  • 流水灯电路设计
  • 摘要:本次设计要求采用可编程逻辑器件实现一个流水灯控制电路,8个LED 灯能连续发出三种不同的流水显示形式,先是8个LED 灯从左到右依次点亮,左边亮四个,右边亮四个,最后从中间往两边亮.两边往中间亮,实现了灯光的移动和闪亮效果,特别是用于 ...查看


  • Verilog语言的特点
  • 一.第一章 1. 几个英文缩写: PLA(Programmable Logic Array)可编程逻辑阵列 FPGA(Field Programmable Gate Array)现场可编程逻辑门阵列 CPLD(Complex Program ...查看


  • 基于FPGA的嵌入式逻辑分析仪设计
  • 第21卷第1期 2006年2月 长沙电力学院学报(自然科学版) Vol.21Feb. No.1 JOURNALOFCHANGSHAUNIVERSITYOFELECTRICPOWER(NATURALSCIENCE) 2006 基于FPGA的嵌 ...查看


  • 电子技术总结
  • <电子技术及其应用基础> 课程学习总结 电子技术及其应用基础系统地讨论数字逻辑系统和数字电路的建模.分析和设计方法,内容包括逻辑系统基本特征.数字电路基本特征.数字逻辑信号特征.数字逻辑的分析和设计方法.数字电路分析和设计方法. ...查看


  • 步进电机定位控制系统设计
  • 课程设计 题目 学 院 专业 班级 姓名 指导老师 步进电机定位控制系统设计 信息工程学院 2013~2014 学年 6月 20日 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题目:步进电机定位控制系统设计 初始条件: ...查看


热门内容