文档详情

北航数字EDA基础实验报告(1-3).docx

发布:2025-04-08约3.19千字共9页下载文档
文本预览下载声明

数字EDA基础实验报告

实验一简单的组合逻辑设计

100227班XXX一对实验的理解

本实验是Verilog数字系统设计的第一个实验,也是最基础的实验。通过这个实验,我们可以练习基本组合逻辑电路的实现方法,初步了解两种基本组合逻辑电路的生成方法,以及测试模块的编写。

二实现思路

本实验要求完成一个字节(8位)比较器。我们可以将两个8位的二进制变量在模块内进行比较。当a[7:0]b[7:0]时,使输出为1;否则输出为0。这个功能显然使用if语句即可完成。

三实验源代码

1功能模块源代码

moduleex1_1(out,a,b);

input[7:0]a,b;

outputout;

regout;

always@(aorb)

if(ab)

out=1;

else

out=0;

endmodule

2测试模块源代码

`includeex1.v

moduletestmodule;

reg[7:0]ain,bin;

wireoutw;

initial

begin

ain=8

bin=8

#200 ain=8

bin=8

#200 ain=8

bin=8

#200 $stop;

end

ex1_1m(.out(outw),.a(ain),.b(bin));

endmodule

四仿真波形

局部放大波形:

五波形说明

由波形可以看出:

T1时间段内,a=8b=8显然ab,故模块输出为高;

T2时间段内,a=8b=8显然ab,故模块输出为低;

T3时间段内,a=8b=8显然a=b,故模块输出为低。

六实验总结

通过本次试验,我们练习了基本组合逻辑电路的实现方法,初步了解了两种基本组合逻辑电路的生成方法,以及尝试进行测试模块的编写工作。在VerilogHDL中,描述组合逻辑电路常用assign结构。在仿真后,我们可以通过调整测试模块的参数来改变输入变量,查看输出结果是否正确,来检验模块逻辑正确性。可见,测试模块在VerilogHDL编写中起着不可磨灭的作用。

数字EDA基础实验报告

实验二简单分频时序逻辑电路的设计

100227班XXX一对实验的理解

本实验要求我们完成一个简单的二分频电路,同时输出相位与给定的相反。通过这个实验掌握最基本的时序电路的实现方法,熟悉时序电路测试模块的编写。

二实现思路

二分频,即输出波形频率时输入时钟的1/2,也就是周期是其2倍。具体来说,时钟每两次翻转,输出翻转一次。也就是每当时钟上升沿(或下降沿)到来时,输出波形翻转,这样就可以简单的实现一个二分频电路代码的编写。另外,题目要求相位相反,我们可以使用时钟下降沿触发即可完成。

三实验源代码

1功能模块源代码

moduleex2_1(q,clk,reset);

outputq;

inputreset;

inputclk;

regq;

always@(negedgeclkorposedgereset)

if(reset)

q=1b0;

else

q=~q;

endmodule

2测试模块源代码

`includeex2.v

moduletestmodule;

regclk;

regreset;

ex2_1m(q,clk,reset);

always#20clk=~clk;

initial

begin

clk=1b0;

reset=1b1;

#40reset=1b0;

#200reset=1b1;

end

endmodule

四仿真波形

局部放大波形:

五波形说明

由波形可以看出:

Reset=1的时间段内,输出为0;

Reset=0时间段内,分频器正常工作,且周期为输入的2倍,即频率为输入时钟的二分频。

六实验总结

通过本次试验,我们掌握最基本的时序电路的实现方法,熟悉了时序电路测试模块的编写,并且习惯了编译仿真界面的使用,以及尝试对有BUG代码段进行调试工作。在VerilogHDL中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方式。在可综合的VerilogHDL模型中,通常使用always块结构来表述时序逻辑。与延时语句配合,always块也常

显示全部
相似文档