一、实验目的
进一步掌握D触发器,分频电路,多谐振荡电器,CP时钟脉冲元等单元电路的设计。
二、实验原理
三、程序清单(每条语句必须包括注释或在开发窗口注释后截图)
逻辑代码:
module contend
(
input wire clk,rst,start,
input wire[3:0]k,
output reg[3:0]led
);
always@(posedge clk or negedge rst)
begin
if(!rst)
led[3:0] = 4'b1111;
else if(start)
case(k)
4'b0000 : led = 4'b1111;
4'b0001 : led = 4'b1110;
4'b0010 : led = 4'b1101;
4'b0100 : led = 4'b1011;
4'b1000 : led = 4'b0111;
endcase
end
endmodule
四、综合、管脚分配、生成输出文件、下载(所有步骤截图)
五、仿真程序清单、波形(波形截图必做,截图!)
仿真代码:
`timescale 1ns/100ps
module contend_tb;
reg clk;
reg rst;
reg start;
reg[3:0]k;
wire[3:0]led;
initial
begin
clk = 0;
rst = 0;
start = 0;
k=0;
#10;
rst = 1;
start = 1;
#50;
k = 4'b0000;
#50;
k = 4'b0001;
#50;
k = 4'b0010;
#50;
k = 4'b0100;
#50;
k = 4'b1000;
#50;
k = 4'b0000;
#50;
k = 4'b0001;
#50;
k = 4'b0010;
$50;
k = 4'b0100;
#50;
k = 4'b1000;
end
always#10 clk=~clk;
contend u1
(
.clk(clk),
.rst(rst),
.start(start),
.k(k),
.led(led)
);
Endmodule
六、思考与体会
通过本次实验,我进一步理解了D触发器,分频电路,多谐振荡电器,CP时钟脉冲元等单元电路的设计,能自己设计出竞赛抢答器,并且用FPGA实现了本次实验的内容,经过验证,与仿真结果一致,满足抢答器的基本功能,在实验练习的巩固下,我对相关的理论知识有了更深刻的记忆和运用。