基于Libero的数字逻辑设计仿真及验证实验实验报告 下载本文

内容发布更新时间 : 2024/12/25 22:53:29星期一 下面是文章的全部内容请认真阅读。

wire [6:0]y;

z6159_cs2 u1(.A(a),.B(b),.MR(mr),.CP(cp),.Y(y)); initial begin cp=0;

#400 $finish; end

parameter period=20;

always#(period/2) cp=~cp; initial begin mr=0; #25 mr=1; end initial begin a=1; b=9; end endmodule

(3)第一次仿真结果

(4)综合结果

30

5)布局布线(引脚分配截图)。31

(6)第三次仿真结果(布局布线后)

(7)烧录。完成后给老师检查(注:可和后面的多个实验一起烧录再检查)。

2、跑马灯设计

(1)各功能模块代码(每个功能模块请加注释介绍功能)

32

//选择输出端控制模块,控制跑马灯的模式。 module choose(CLK,A,B,C,D,S,Y); input [7:0]A,B,C,D; input [1:0]S; input CLK; output [7:0]Y; reg [7:0]Y;

always@(posedge CLK) begin case(S) 0:Y=A; 1:Y=B; 2:Y=C; 3:Y=D; endcase end endmodule

//跑马灯模式一

module led1(RST,CLK,LED); input RST,CLK; output [7:0]LED; reg [7:0]LED; reg cot;

reg [7:0]led_r;

always@(posedge CLK) begin if(RST) cot<=0; else begin

led_r=8'b01010101; if(cot==0)

LED<=led_r; else

LED<=led_r<<1; cot<=cot+1; end end endmodule

//跑马灯模式二

module led2(RST,CLK,LED); input RST,CLK; output [7:0]LED;

33

reg [7:0]LED; reg dir;

reg [2:0]cot; reg [7:0]led_r;

always@(posedge CLK) begin if(RST) begin cot<=0; dir<=0; end else begin if(!dir) begin

if(cot==0) begin

led_r=8'b00000001; LED<=led_r; end else

LED<=(LED<<1)+led_r; if(cot==7) dir<=~dir; cot<=cot+1; end else begin

if(cot==0) begin

led_r=8'b11111110; LED<=led_r; end else

LED<=LED<<1; if(cot==7) dir<=~dir; cot<=cot+1; end end end endmodule //跑马灯模式3

34