电子电路设计数字部分实验报告 学 院: 姓 名: 实验一 简单组合逻辑设计 实验内容 描述一个可综合的数据比较器,比较数据a 、b 的大小,若相同,则给出结果 1,否则给出结果 0。 实验仿真结果 实验代码 主程序 module compare(equal,a,b); input[7:0] a,b; output equal; assign equal=(a>b)?1:0; endmodule 测试程序 module t; reg[7:0] a,b; reg clock,k; w ire equal; initial begin a=0; b=0; clock=0; k=0; end always #50 clock = ~clock; always @ (posedge clock) begin a[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[7]={$random}%2; end initial begin #100000 $stop;end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验二 简单分频时序逻辑电路的设计 实验内容 用always 块和@(posedge clk)或@(negedge clk)的结构表述一个1/2 分频器的可综合模型,观察时序仿真结果。 实验仿真结果 实验代码 主程序 modu le half_clk(reset,clk_in,clk_ou t); inpu t clk_in,reset; ou tpu t clk_ou t; reg clk_ou t; always@(negedge clk_in) begin if(!reset) clk_out=0; else clk_out=~clk_out; end endmodule 测试程序 `timescale 1ns/100ps `define clk_cycle 50 module top; reg clk,reset; wire clk_out; always #`clk_cycle clk=~clk; initial begin clk=0; reset=1; #10 reset=0; #110 reset=1; #100000 $stop; end half_clk m0(.reset(reset),.clk_in(clk),.clk_out(clk_out)); endmodule 实验三 利用条件语句实现计数分频时序电路 实验内容 利用10MHz 的时钟,设计一个单周期形状的周期波形。 实验仿真结果 实验代码 主程序 module fdivision(RESET,F10M,out); input F10M,RESET; output out; reg out; reg[7:0] i; always @(posedge F10M) if(!RESET) begin out<=0; i<=0; end else if(i==2||i==3) begin out=~ out; i<=i+1; end else if(i==5) i<=1; else i<=i+1; endmodule 测试程序 `times...