内容发布更新时间 : 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