Verilog简单的组合逻辑设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告课程名称:数字系统设计
实验项目名称:练习一简单的组合逻辑设计学院:信息工程学院
专业:电子信息工程
指导教师:
报告人:学号:班级:
实验时间:2012-10-09
实验报告提交时间:2012-10-23
教务部制
实验目的与要求:
1、掌握基本组合逻辑电路的实现方法;
2、初步了解两种基本组合逻辑电路的生成方法;
3、学习测试模块的编写;
4、通过综合和布局布线了解不同层析仿真的物理意义。
实验内容:
练习题 1设计一个字节(8位)的比较器
要求:比较两个字节的大小,如a[7:0]大于b[7:0],则输出高电平,否则输出低电平;并改写测试模型,使其能进行比较全面的测试。观测RTL级仿真、综合后门级仿真和布线后仿真有什么不同,并说明这些不同的原因。从文件系统中查阅自动生成的compare.vm,compare.vo文件和compare.v做比较,说出它们的不同点和相同点。
I、
源代码如下:
module Compare(equal,a,b);
input[7:0] a,b;
output equal;
assign equal=(a>b)?1:0;
endmodule
II、
RTL级仿真(顶层):
RTL级仿真(底层):
III、
综合后门级仿真:
IV、
仿真代码一:
module Test_Compare;
// Inputs
reg [7:0] a;
reg [7:0] b;
// Outputs
wire equal;
// Instantiate the Unit Under Test (UUT) Compare uut (
.equal(equal),
.a(a),
.b(b)
);
initial begin
// Initialize Inputs
a = 0;
b = 0;
#100 a=0000_0000;b=0000_0000;
#100 a=0001_0000;b=0000_0000;
#100 a=0001_0000;b=1000_0000;
#100 a=1111_0000;b=0000_1111;
#100 a=0000_0000;b=0000_0000;
#100 a=0101_0000;b=1000_0000;
#100 a=0001_0100;b=1000_1000;
#100 a=1111_0010;b=1000_1111;
#100 $stop;
end
endmodule
V、
仿真结果一如下:
仿真代码二:
module Test_Compare;
// Inputs
reg [7:0] a;
reg [7:0] b;
Reg clock;
// Outputs
wire equal;
// Instantiate the Unit Under Test (UUT) Compare uut (
.equal(equal),
.a(a),
.b(b)
);
initial begin
// Initialize Inputs
a = 0;
b = 0;
Clock=0;
end
always #50 clock=~clock;
always@(posedge clock)
begin
a=($random%256);
b=($eandom%256);
end
initial
begin #100000 $stop;end
endmodule
仿真结果二如下:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。