文档详情

北航verilog实验报告(全).pdf

发布:2024-10-25约4.02万字共45页下载文档
文本预览下载声明

目录

实验一2

实验二8

实验三14

实验四27

实验一

实验目的:熟悉硬件开发流程,掌握Modelsim设计与仿真环境,学会简单组合逻辑电路、

简单时序逻辑电路设计,不要求掌握综合和综合后仿真。

实验内容:必做实验:练习一、简单的组合逻辑设计

练习二、简单分频时序逻辑电路的设计

选做实验:选做一、练习一的练习题

选做二、7段数码管译码电路

练习一、简单的组合逻辑设计

描述一个可综合的数据比较器,比较数据a、b的大小,若相同,则给出结果1,否则

给出结果0。

实验代码:

模块源代码:

modulecompare(equal,a,b);

inputa,b;

outputequal;

assignequal=(a==b)?1:0;

endmodule

测试模块源代码:

`timescale1ns/1ns

modulet;

rega,b;

wireequal;

initial

begin

a=0;

b=0;

#100a=0;b=1;

#100a=1;b=1;

#100a=1;b=0;

#100a=0;b=0;

#100$stop;

end

comparem(.equal(equal),.a(a),.b(b));

endmodule

实验波形

2

练习二、简单分频时序逻辑电路的设计

用always块和@(posedgeclk)或@(negedgeclk)的结构表述一个1/2分频器的可综合模

型,观察时序仿真结果。

实验代码:

模块源代码:

modulehalfclk(reset,clkin,clkout);

inputclkin,reset;

outputclkout;

regclkout;

always@(posedgeclkin)

begin

if(!reset)clkout=0;

elseclkout=~clkout;

end

endmodule

测试模块源代码:

`timescale1ns/100ps

`defineclkcycle50

modulett;

regclkin,reset;

wireclkout;

always#`clkcycleclkin=~clkin;

initial

begin

clkin=0;

reset=1;

#10reset=0;

#110reset=1;

#100000$stop;

end

halfclkm0(.reset(reset),.clkin(clkin),.clkout(clkout));

endmodule

3

实验波形:

练习题1:设计一个字节(8位)的比较器。要求:比较两个字节的大小,并改

写测试模型,使其能进行比较全面的测试。观察RTL级仿真、综合后门级仿真和

布线后仿真有什么不同,并说明不同的原因。从文件系统中查阅自动生成的

compare.vm,compare.vo文件和compare.v文件作比较,说出不同点和相同点。

实验代码:

模块源代码:

modulecompare1(equal,a,b);

input[7:0]a,b;

outputequal;

assignequal=(ab)?1:0;

endmodule

测试模块源代码:

`timescale1ns/1ns

modulettt;

reg[7:0]a,b;

wireequal;

initial

begin

a=8b0

显示全部
相似文档