西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分

一、实验目的

进一步掌握D触发器,分频电路,多谐振荡电器,CP时钟脉冲元等单元电路的设计。

二、实验原理

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第1张图片

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第2张图片 

三、程序清单(每条语句必须包括注释或在开发窗口注释后截图)

逻辑代码:

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

四、综合、管脚分配、生成输出文件、下载(所有步骤截图)

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第3张图片

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第4张图片

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第5张图片

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第6张图片

五、仿真程序清单、波形(波形截图必做,截图!)

仿真代码:

`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

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)FPGA部分_第7张图片

六、思考与体会

通过本次实验,我进一步理解了D触发器,分频电路,多谐振荡电器,CP时钟脉冲元等单元电路的设计,能自己设计出竞赛抢答器,并且用FPGA实现了本次实验的内容,经过验证,与仿真结果一致,满足抢答器的基本功能,在实验练习的巩固下,我对相关的理论知识有了更深刻的记忆和运用。

 

你可能感兴趣的:(西科大数模电实验,fpga开发,diamond,mutisim,西南科技大学,数电实验)