当前位置:   article > 正文

杭电数字电路课程设计-实验十七-流水灯实验_杭电数电实验步骤

杭电数电实验步骤

实验目的

  1. 熟悉掌握开关和显示灯作为输入和输出设备进行各种实验的方法。
  2. 掌握灵活运用Verilog HDL 语言进行各种描述与建模的技巧和方法。

实验要求

  1. 使用合适的描述方式编程实现规定功能的流水灯模块。
  2. 课前任务:在Xilinx ISE上完成创建工程、编辑程序源代码、编程、综合、仿真、验证,确保逻辑正确性。
  3. 实验室任务:配置管脚,生成*.bit文件,完成板级验证。
  4. 撰写实验报告。

实验原理

流水灯的实现方法:
  想实现流水灯,只需用一个寄存器来对应开发板上的LED灯,初始时为寄存器中的某几位赋值为1,则开发板上对应的LED灯亮起。接着只需定时将寄存器进行移位,则开发板上的LED灯也跟着移位,即达到了流水灯的效果。想实现不同模式流水灯的转换,只需根据输入进行不同的寄存器初值赋值,以及采用不同的移位策略即可。

程序代码

module LSD(clk,reset,SW,led);
	input clk,reset;
	input [1:0] SW;
	output  reg [7:0] led;
    wire clk_2HZ;
	reg [1:0] CZ;
	
	Fdiv F(reset,clk,clk_2HZ);
	
	initial begin led <= 8'b0; end
	always @(posedge reset or posedge clk_2HZ) begin
	if(reset) begin led<=8'b00000000; end
	else if( led== 8'b0) 
		begin
			case(SW)
			2'b00:begin led<=8'b10000000;CZ<=SW; end
			2'b01:begin led<=8'b00000001;CZ<=SW; end
			2'b10:begin led<=8'b00011000;CZ<=SW; end
			2'b11:begin led<=8'b10000001;CZ<=SW; end	
			endcase
		end
    else if( SW!=CZ) 
    	begin
			case(SW)
			2'b00:begin led<=8'b10000000;CZ<=SW; end
			2'b01:begin led<=8'b00000001;CZ<=SW; end
			2'b10:begin led<=8'b00011000;CZ<=SW; end
			2'b11:begin led<=8'b10000001;CZ<=SW; end	
			endcase
		end
		else begin
		case(SW)
			2'b00:begin led[7:0] <= {led[0],led[7:1]};end  
			2'b01:begin led[7:0] <= {led[6:0],led[7]};end
			2'b10:begin led[7:4] <= {led[6:4],led[7]};led[3:0] <= {led[0],led[3:1]};end
			2'b11:begin led[7:4] <= {led[4],led[7:5]};led[3:0] <= {led[2:0],led[3]};end	
		endcase
		end
	end
endmodule

module Fdiv(///分频
    input rst_,
    input clk_25M,
    output reg clk_out
    );
	 reg [31:0] cnt;
	 initial begin cnt =32'd0; end
	 initial begin clk_out = 0; end
	 
	 always @(posedge rst_ or posedge clk_25M) begin
	  if(rst_) begin
		cnt<=32'd0;
		clk_out<=1'b0;end
		else if (cnt==32'd12499999) begin
		   clk_out <=~clk_out;                                                                     
			cnt <= 32'd0; end
      else begin
		   cnt<= cnt+1'b1;
			clk_out <= 0;
			end
	end
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

测试用例

always #20 clk=~clk;
	initial begin
		clk=0;
		reset = 0;
		SW = 00;
		#2000000000;
		reset = 0;SW = 01;
		#2000000000;
		reset = 1;SW = 00;
		#1000000000;
		reset = 0;SW = 10;
		#2000000000;
		reset = 0;SW = 11;
		#2000000000;
	end
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

仿真波形图

在这里插入图片描述
  从波形图可以看出,起初寄存器led[7:0]未赋值,当第一次时钟脉冲累计到阈值时led[7:0]赋值为第一种模式,此后当时钟脉冲再次到达阈值时,led[7:0]进行移位,实现了流水灯的效果。

电路管脚图

在这里插入图片描述
在这里插入图片描述

引脚配置文件

NET "led[7]" IOSTANDARD = LVCMOS18;
NET "led[6]" IOSTANDARD = LVCMOS18;
NET "led[5]" IOSTANDARD = LVCMOS18;
NET "led[4]" IOSTANDARD = LVCMOS18;
NET "led[3]" IOSTANDARD = LVCMOS18;
NET "led[2]" IOSTANDARD = LVCMOS18;
NET "led[1]" IOSTANDARD = LVCMOS18;
NET "led[0]" IOSTANDARD = LVCMOS18;
NET "SW[1]" IOSTANDARD = LVCMOS18;
NET "SW[0]" IOSTANDARD = LVCMOS18;

NET "led[7]" LOC = R1;
NET "led[6]" LOC = P2;
NET "led[5]" LOC = P1;
NET "led[4]" LOC = N2;
NET "led[3]" LOC = M1;
NET "led[2]" LOC = M2;
NET "led[1]" LOC = L1;
NET "led[0]" LOC = J2;
NET "SW[1]" LOC = T3;
NET "SW[0]" LOC = U3;
NET "clk" LOC = H4;
NET "reset" LOC = R4;

NET "clk" IOSTANDARD = LVCMOS18;
NET "reset" IOSTANDARD = LVCMOS18;
NET "reset" PULLDOWN;
NET "SW[1]" PULLDOWN;
NET "SW[0]" PULLDOWN;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

工程文件

工程文件: 流水灯实验.
关注我即可下载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/896747
推荐阅读
相关标签
  

闽ICP备14008679号