资源描述:
《北航电子电路设计数字部分实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子电路设计数字部分实验报告学院:姓 名:实验一简单组合逻辑设计实验内容描述一个可综合的数据比较器,比较数据a、b的大小,若相同,则给出结果1,否则给出结果0。实验仿真结果实验代码主程序modulecompare(equal,a,b);input[7:0]a,b;outputequal;assignequal=(a>b)?1:0;endmodule测试程序modulet;reg[7:0]a,b;regclock,k;wireequal;initialbegina=0;b=0;clock=0;k=0;endalways#50clock=~clock;al
2、ways@(posedgeclock)begina[0]={$random}%2;a[1]={$random}%2;a[2]={$random}%2;a[3]={$random}%2;a[4]={$random}%2;a[5]={$random}%2;a[6]={$random}%2;a[7]={$random}%2;b[0]={$random}%2;b[1]={$random}%2;b[2]={$random}%2;b[3]={$random}%2;b[4]={$random}%2;b[5]={$random}%2;b[6]={$random}%2;b
3、[7]={$random}%2;endinitialbegin#100000$stop;endcomparem(.equal(equal),.a(a),.b(b));endmodule实验二简单分频时序逻辑电路的设计实验内容用always块和@(posedgeclk)或@(negedgeclk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。实验仿真结果实验代码主程序modulehalf_clk(reset,clk_in,clk_out);inputclk_in,reset;outputclk_out;regclk_out;always@(ne
4、gedgeclk_in)beginif(!reset)clk_out=0;elseclk_out=~clk_out;endendmodule测试程序`timescale1ns/100ps`defineclk_cycle50moduletop;regclk,reset;wireclk_out;always#`clk_cycleclk=~clk;initialbeginclk=0;reset=1;#10reset=0;#110reset=1;#100000$stop;endhalf_clkm0(.reset(reset),.clk_in(clk),.clk_
5、out(clk_out));endmodule实验三利用条件语句实现计数分频时序电路实验内容利用10MHz的时钟,设计一个单周期形状的周期波形。实验仿真结果实验代码主程序modulefdivision(RESET,F10M,out);inputF10M,RESET;outputout;regout;reg[7:0]i;always@(posedgeF10M)if(!RESET)beginout<=0;i<=0;endelseif(i==2
6、
7、i==3)beginout=~out;i<=i+1;endelseif(i==5)i<=1;elsei<=i+1;
8、endmodule测试程序`timescale1ns/100psmoduledivision_top;regF10M,RESET;wireout;always#50F10M=~F10M;initialbeginRESET=1;F10M=0;#90RESET=0;#100RESET=1;#10000$stop;endfdivisionfdivision(.RESET(RESET),.F10M(F10M),.out(out));endmodule实验四阻塞赋值与非阻塞赋值的区别实验内容比较四种不同的写法,观察阻塞与非阻塞赋值的区别。Blocking:alwa
9、ys@(posedgeclk)beginb=a;c=b;endBlocking1:always@(posedgeclk)beginc=b;b=a;endBlocking2:always@(posedgeclk)b=a;always@(posedgeclk)c=b;non_Blocking:always@(posedgeclk)beginb<=a;c<=b;End实验仿真结果实验代码主程序moduleblocking(clk,a,b,c);output[3:0]b,c;input[3:0]a;inputclk;reg[3:0]b,c;always@(pos
10、edgeclk)beginb=a;c=b;endendmodule测试部分`ti