EDA实验报告.docx
文本预览下载声明
PAGE \* MERGEFORMAT10
实验报告
课程名称_verilog数字系统设计 __
学生学院 信息工程学院
专业班级13级应用电子专业4班
学号 3113002512
姓名 陈文威
指导教师 罗思杰
2015 年 11月 9 日
实验一 简单组合逻辑电路的设计
一、实验要求
1、用verilog HDL语言描写出简单的一位数据比较器及其测试程序
2、用测试程序对比较器进行波形仿真测试;画出仿真波形
3、总结实验步骤和实验结果
二、实验原理与内容
这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0,。在verilog HDL中,描述组合逻辑时常用assign结构。注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。
模块源代码:
//compare
module compare(equal,a,b);
input a,b;
output equal;
assign equal=(a==b)?1:0;
endmodule
测试模块用于检测模块设计的正确与否,它给出模块的输入信号,观察模块 的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进行修改。
测试模块源代码:
`timescale 1ns/1ns
module comparetest;
reg a,b;
wire equal;
initial
begin
a=0;
b=0;
#100 a=0;b=1;
#100 a=1;b=1;
#100 a=1;b=0;
#100 $stop;
end
compare compare1(.equal(equal),.a(a),.b(b));
endmodule
三、实验步骤
1、新建
2、输入源程序
3、编译无误后仿真
4.仿真结果图
四、实验结果
通过实验,用verilog HDL语言描写出简单的一位数据比较器及其测试程序
并且通过用测试程序对比较器进行波形仿真测试、画出仿真波形。完成实验要求,达到试验目的,实验结果正确。
实验二 简单时序逻辑电路的设计
一、实验要求
1、用verilog HDL语言描写出简单的二分之一分频器及其测试程序;
2、用测试程序对分频器进行波形仿真测试;画出仿真波形;
3、总结实验步骤和实验结果
二、实验原理与内容
在verilog HDL中,相对于组合逻辑电路,时序逻辑电路也有规定的表达方式。在可综合的verilog HDL模型,我们通常使用always块和@(posedge clk)或@(negedge clk)的结构来表述时序逻辑。下面是一个1/2分频器的可综合模型。
//half_clk.v:
module half_clk(reset,clk_in,clk_out);
input clk_in,reset;
output clk_out;
reg clk_out;
always @(posedge clk_in)
begin
if(!reset) clk_out=0;
else clk_out=~clk_out;
end
endmodule
在always块中,被赋值的信号都必须定义为reg型,这是由时序逻辑电路的特点所决定的。对于reg型数据,如果未对它进行赋值,仿真工具会认为它是不定状态。为了能正确地观察到仿真结果,在可综合风格的模块中我们通常定义一个复位信号reset,当reset为低电平时,对电路中的寄存器进行复位。
测试模块的源代码
//———clk_Top.v————
`timescale 1ns/100ps
`define clk_cycle 50
module clk_Top;
reg clk,reset;
wire clk_out;
always #`clk_cycle clk=~clk;
initial
begin
clk=0;
reset=1;
#100 reset=0;
#100 reset=1;
#10000 $stop;
end
half_clk half_clk1(reset,clk,clk_out);
endmodule
三、实验步骤
1、新建
2、分别输入源程序
3、编译无误后仿真
4.仿真结果图
四、实验结果
通过实验,用verilog HDL语言描写出简单的二分
显示全部