Verilog实现快递柜

FPGA这东西就是个玄学。这个实验做了这么久,不想让它被遗忘,在此做一下记录,让它变得有价值起来。

Verilog实现快递柜 —— 实验六记录

实验描述

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

实验分析

状态转换图及状态定义
状态转换表

  1. 打开vivado
  2. 新建工程
  3. 新建三个design文件,采用如下命名方式
  4. 添加约束文件
  5. 烧上FPGA板子吧

express.v

`timescale 1ns / 1ps
//
// Company: 
// Engineer: Deadpool
// 
// Create Date: 2019/12/04 15:23:53
// Design Name: 
// Module Name: express
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module express(clk, X1, X2, X3, X4, password, boxes_len, segs0, segs1, len);
    input wire clk;
    input wire X1;   //确认
    input wire X2;   //存包
    input wire X3;   //取包
    input wire X4;   //输入
    input wire[15:0] password;         //密码
    output wire[15:0] boxes_len;       //LED使能
    output wire[7:0] segs0;
    output wire[7:0] segs1;
    output wire[7:0] len;
    
    wire Y1;  //快递箱是否满,初始为空
    wire Y2;  //密码是否正确,初始未知
    wire Y3;  //快递箱是否空,初始为空

	//reg[15:0] store_slice[15:0];//密码寄存器组
    parameter S0 = 3'b000;  //初始状态
    parameter S1 = 3'b001;  //存放待确认状态
    parameter S2 = 3'b010;  //取出待输入密码状态
    parameter S3 = 3'b011;  //输入带平定状态
    parameter S4 = 3'b100;  //密码正确状态
	parameter S5 = 3'b101;	//密码错误状态

    reg[2:0] current_state = S0; //系统初始现态为S0状态
    reg[2:0] next_state = S0;    //系统初始现态为S0状态
	reg[31:0] wait_time = 0;
    //reg[15:0] boxes = 16'hffff;        //箱子状态 0为满, 1 为空
	//箱子初始为全空
	//reg[4:0] boxes_counter; //箱子个数计数器

    //reg[3:0] four_bit;
    //reg[7:0] eight_bit; 
    //8'd16 ~ 8'hff 和 0 ~ 15 随机数生成模块
    //random U1(clk,four_bit,eight_bit);

    
    //状态转移模块
    always @(posedge clk) begin
        current_state <= next_state;
    end
    
    //状态处理模块
	stateprocessing U(clk, current_state, password, boxes_len, Y1, Y2, Y3, len, segs0, segs1);
    //组合逻辑模块
    always @(posedge clk) begin
        //先判断快递箱是否装满

        case({X1,X2,X3,X4,current_state})
        {4'b1000,S0}:
        begin
            next_state = S0;
        end
        {4'b1000,S1}:
        begin
            next_state = S0;
        end
        {4'b1000,S2}:
        begin
            next_state = S2;
        end
        {4'b1000,S4}:
        begin
            next_state = S0;
        end
		{4'b1000,S5}:
        begin
            next_state = S0;
        end
        {4'b0100,S0}:
        begin
            if(Y1 == 1)
                next_state = S0;
            else begin
                next_state = S1;
            end
        end
        {4'b0100,S1}:
        begin
            next_state = S1; 
        end
        {4'b0100,S2}:
        begin
            next_state = S2;
        end
        {4'b0100,S4}:
        begin
            next_state = S4;
        end
		{4'b0100,S5}:
        begin
            next_state = S5;
        end
        {4'b0010,S0}:
        begin
            if (Y3 == 1) begin
                next_state = S0;
            end
            else begin
                next_state = S2;
            end
        end
        {4'b0010,S1}:
        begin
            next_state = S1;
        end
        {4'b0010,S2}:
        begin
            next_state = S2;
        end
        {4'b0010,S4}:
        begin
            next_state = S4;
        end
		{4'b0010,S5}:
        begin
            next_state = S5;
        end
        {4'b0001,S0}:
        begin
            next_state = S0;
        end
        {4'b0001,S1}:
        begin
            next_state = S1;
        end
        {4'b0001,S2}:
        begin
            next_state = S3;
        end
        {4'b0001,S4}:
        begin
            next_state = S4;
        end
		{4'b0001,S5}:
        begin
            next_state = S5;
        end
		
		{4'b0000,S3}:
		begin
			if(Y2 == 1) begin
				if(wait_time == 32'd100000000) begin
					next_state = S4;
				end
				else begin
					next_state = S3;
					wait_time = wait_time + 1;
				end
			end
			else begin
				next_state = S5;
			end
		end
        default:
            next_state = current_state;
        endcase
    end
    
endmodule

stateprocessing.v

`timescale 1ns / 1ps
//
// Company: 
// Engineer: Deadpool
// 
// Create Date: 2019/12/04 20:52:21
// Design Name: 
// Module Name: stateprocessing
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module stateprocessing(clk, current_state, password, boxes_len, Y1, Y2, Y3, len, segs0, segs1);
	input wire clk;
	
	input wire[2:0] current_state;			//系统现态
	input wire[15:0] password;			//状态S2时,输入的密码
	
	
	output reg[15:0] boxes_len;			//LED亮灯状态
	output reg Y1;							//快递箱是否满
	output reg Y2;							//密码是否正确
	output reg Y3;							//快递箱是否空
	
	reg[15:0] store_slice[15:0];	//密码寄存器组    //别写反了,不然够的受
	reg[15:0] boxes = 16'hffff;				//箱子状态
	reg[4:0] boxes_counter = 5'd16;		//空闲箱子计数器

	
	
	reg[7:0] password_bit1;
	reg[7:0] password_bit2;
	reg[7:0] password_bit3;
	reg[7:0] password_bit4;
	reg[3:0] box_open;
	reg[31:0] blink_counter = 0;			//灯光闪烁计数器
    reg blink_len = 1;                      //闪烁开关控制器
	parameter S0 = 3'b000;  //初始状态
    parameter S1 = 3'b001;  //存放待确认状态
    parameter S2 = 3'b010;  //取出待输入密码状态
    parameter S3 = 3'b011;  //输入带平定状态
    parameter S4 = 3'b100;  //密码正确状态
	parameter S5 = 3'b101;	//密码错误状态
    //定义数码管显示数字
    parameter zero = 8'b11111100;
    parameter one = 8'b01100000;
    parameter two = 8'b11011010;
    parameter three = 8'b11110010;
    parameter four = 8'b01100110; 
    parameter five = 8'b10110110;
    parameter six = 8'b10111110; 
    parameter seven = 8'b11100000;
    parameter eight = 8'b11111110; 
    parameter nine = 8'b11100110; 
    parameter ten = 8'b11101110;
    parameter eleven = 8'b00111110;
    parameter twelve = 8'b00011010; 
    parameter thirteen = 8'b01111010; 
    parameter fourteen = 8'b10011110;
    parameter fifteen = 8'b10001110; 

    parameter en0 = 8'b10000000;
    parameter en1 = 8'b01000000;
    parameter en2 = 8'b00100000;
    parameter en3 = 8'b00010000;
    parameter en4 = 8'b00001000;
    parameter en5 = 8'b00000100;
    parameter en6 = 8'b00000010;
    parameter en7 = 8'b00000001;
    parameter enoff = 8'b00000000;

	reg clk2 = 1;
	reg[31:0] timer_counter = 0;
	wire[3:0] four_bit_random; 	//随机箱号
	wire[7:0] four_bit_random1;		//箱号第一位
	wire[7:0] four_bit_random2;	//箱号第二位
	reg[7:0] four_bit_random_digital1;	//存储箱号第一位数字
	reg[7:0] four_bit_random_digital2;	//存储箱号第二位数字
	reg[3:0] pos;                  //随机箱号位置记录
	reg save_flag = 0;				//存箱标志位,如果为0则不能存,如果为1则能存
	reg get_flag = 0;              //取得标志位,如果为0则不能取,如果为1则能取
	//随机密码显示
	
	wire[7:0] random_password_bit1;		//第一位
	wire[7:0] random_password_bit2;		//第二位
	wire[7:0] random_password_bit3;		//第三位
	wire[7:0] random_password_bit4;		//第四位
	wire[3:0] sixteen_four_bit1;
	wire[3:0] sixteen_four_bit2;
	wire[3:0] sixteen_four_bit3;
	wire[3:0] sixteen_four_bit4;
	
	reg[7:0] random_password_bit1_digital;		//存储密码第一位显示
	reg[7:0] random_password_bit2_digital;		//存储密码第二位显示
	reg[7:0] random_password_bit3_digital;		//存储密码第三位显示
	reg[7:0] random_password_bit4_digital;		//存储密码第四位显示
	reg[3:0] sixteen_four_bit1_digital;			//存储密码第一位十六进制
	reg[3:0] sixteen_four_bit2_digital;			//存储密码第二位十六进制
	reg[3:0] sixteen_four_bit3_digital;			//存储密码第三位十六进制
	reg[3:0] sixteen_four_bit4_digital;			//存储密码第四位十六进制
	
	random U(clk, boxes, four_bit_random,four_bit_random1,four_bit_random2,sixteen_four_bit1,sixteen_four_bit2,sixteen_four_bit3,sixteen_four_bit4,random_password_bit1,random_password_bit2,random_password_bit3,random_password_bit4);	

   

	initial begin
	   Y1 = 1'b0;  //快递箱是否满,初始为空
       Y2 = 1'b1;  //密码是否正确,初始未知
       Y3 = 1'b1;  //快递箱是否空,初始为空
       segs0 = zero;
       segs1 = zero;
	end
	//为Y1,Y3赋值
	always @(posedge clk) begin
		if(boxes_counter == 5'd0)
		begin
			Y1 <= 1;
			Y3 <= 0;
		end
		
		else if(boxes_counter == 5'd16)
		begin
			Y1 <= 0;
			Y3 <= 1;
		end
		
		else
		begin
			Y1 <= 0;
			Y3 <= 0;
		end
	end
	//分频
	always@(posedge clk)
	begin
	   if(timer_counter == 32'd49999)
	   begin
	       timer_counter <= 0;
	       clk2 =~clk2;
	   end
	   else begin
	       timer_counter <= timer_counter + 1;
	   end
	end
	//计数器
    always @(posedge clk2) begin
    	if (counter == 3'b111) begin
    		counter <= 0;
    	end
    	else begin
    		counter <= counter + 1;
    	end
    end

    //数码管显示
    always @(posedge clk) begin
    	case(counter)
    	3'b000:begin
			len = len0;
			segs0 = digital0;	    		
    	end
    	3'b001:begin
    		len = len1;
			segs0 = digital1;
    	end
    	3'b010:begin
    		len = len2;
			segs0 = digital2;
    	end
    	3'b011:begin
    		len = len3;
			segs0 = digital3;
    	end
    	3'b100:begin
    		len = len4;
			segs1 = digital4;
    	end
    	3'b101:begin
    		len = len5;
			segs1 = digital5;
    	end
    	3'b110:begin
    		len = len6;
			segs1 = digital6;
    	end
    	3'b111:begin
    		len = len7;
			segs1 = digital7;
    	end
    	endcase
    end

    //现态改变,才进行该always模块
	always @(posedge clk) begin
		if (current_state == S0) begin
			save_flag = 1;                   //可以进行存包操作
			get_flag = 1;                    //可以进行取包操作
			
			len0 = en0;
			digital0 = zero;
			
			len1 = en1;
			digital1 = five;
			
			len2 = en2;
			digital2 = one;

			len3 = en3;
			digital3 = six;

			len4 = enoff;
			len5 = enoff;
			
			//判断箱子数boxes_counter
			if (boxes_counter == 5'd0)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = zero;
			end
			
			else if(boxes_counter == 5'd1)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = one;
			end
			
			else if(boxes_counter == 5'd2)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = two;
			end
			
			else if(boxes_counter == 5'd3)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = three;
			end
			
			else if(boxes_counter == 5'd4)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = four;
			end
			
			else if(boxes_counter == 5'd5)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = five;
			end
			
			else if(boxes_counter == 5'd6)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = six;
			end
			
			else if(boxes_counter == 5'd7)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = seven;
			end
			
			else if(boxes_counter == 5'd8)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = eight;
			end
			
			else if(boxes_counter == 5'd9)begin
				len6 = en6;
				digital6 = zero;
				
				len7 = en7;
				digital7 = nine;
			end
			
			else if(boxes_counter == 5'd10)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = zero;
			end
			
			else if(boxes_counter == 5'd11)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = one;
			end
			
			else if(boxes_counter == 5'd12)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = two;
			end
			
			else if(boxes_counter == 5'd13)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = three;
			end
			
			else if(boxes_counter == 5'd14)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = four;
			end
			
			else if(boxes_counter == 5'd15)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = five;
			end
			
			else if(boxes_counter == 5'd16)begin
				len6 = en6;
				digital6 = one;
				
				len7 = en7;
				digital7 = six;
			end
			
			else begin
				len6 = en6;
				digital6 = fifteen;
				len7 = en7;
				digital7 = fifteen;
			end
			//LED亮灯使能 -> 就是boxes的状态
			boxes_len = boxes;
		end

		else if (current_state == S1) begin 
			if(save_flag == 1)
			begin
				pos = four_bit_random;
				sixteen_four_bit1_digital = sixteen_four_bit1;			//存储密码第一位十六进制
				sixteen_four_bit2_digital = sixteen_four_bit2;			//存储密码第二位十六进制
				sixteen_four_bit3_digital = sixteen_four_bit3; 			//存储密码第三位十六进制
				sixteen_four_bit4_digital = sixteen_four_bit4;			//存储密码第四位十六进制
				//four_bit_random_digital1 = four_bit_random1;
				//four_bit_random_digital2 = four_bit_random2;
				//random_password_bit1_digital = random_password_bit1;		//存储密码第一位显示
				//random_password_bit2_digital = random_password_bit2;		//存储密码第二位显示
				//random_password_bit3_digital = random_password_bit3;		//存储密码第三位显示
				//random_password_bit4_digital = random_password_bit4;		//存储密码第四位显示
				
				
				//随机箱子生成
				boxes[pos]  =  0;			//存放,箱子状态置零
				boxes_counter = boxes_counter - 1;		//空闲箱子数 -1
					
				/*len0 = en0;
				digital0 = four_bit_random_digital1;
					
				len1 = en1;
				digital1 = four_bit_random_digital2;
				
				len2 = enoff;
				len3 = enoff;
				
				//随机密码生成	
				len4 = en4;
				digital4 = random_password_bit1_digital;

				len5 = en5;
				digital5 = random_password_bit2_digital;
				
				len6 = en6;
				digital6 = random_password_bit3_digital;
				
				len7 = en7;
				digital7 = random_password_bit4_digital;*/
				
				store_slice[pos][15:12] = sixteen_four_bit1_digital;
				store_slice[pos][11:8] = sixteen_four_bit2_digital;
				store_slice[pos][7:4] = sixteen_four_bit3_digital;
				store_slice[pos][3:0] = sixteen_four_bit4_digital;
				//LED亮灯使能 -> 就是boxes[four_bit_random]的状态
				//boxes_len = 16'h0000;
				//boxes_len[pos] = 1;
				//boxes_len <= boxes;
				//boxes_len[boxes_counter] = 1;
				save_flag = 0;
			end
			else begin
			    len0 = en0;
				digital0 = four_bit_random_digital1;
					
				len1 = en1;
				digital1 = four_bit_random_digital2;
				
				len2 = enoff;
				len3 = enoff;
				
				//随机密码生成	
				len4 = en4;
				digital4 = random_password_bit1_digital;

				len5 = en5;
				digital5 = random_password_bit2_digital;
				
				len6 = en6;
				digital6 = random_password_bit3_digital;
				
				len7 = en7;
				digital7 = random_password_bit4_digital;
			    boxes_len = 16'h0000;
				//boxes_len[pos] = 1;
				//boxes_len <= boxes;
				boxes_len[pos]  =  1;
			end
		end

		else if (current_state == S2) begin
			len0 = enoff;
			len1 = enoff;
			len2 = enoff;
			len3 = enoff;
			len4 = enoff;
			len5 = enoff;
			len6 = enoff;
			len7 = enoff;
			boxes_len = 16'h0000;
		end

		else if (current_state == S3) begin
			len0 = enoff;
			len1 = enoff;
			len2 = enoff;
			len3 = enoff;
			len4 = en4;
			digital4 = password_bit1;
			len5 = en5;
			digital5 = password_bit2;
			len6 = en6;
			digital6 = password_bit3;
			len7 = en7;
			digital7 = password_bit4;
			
			if(store_slice[0][15:12] == password[15:12] && store_slice[0][11:8] == password[11:8] && store_slice[0][7:4] == password[7:4] && store_slice[0][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 0;
			end
			else if(store_slice[1][15:12] == password[15:12] && store_slice[1][11:8] == password[11:8] && store_slice[1][7:4] == password[7:4] && store_slice[1][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 1;
			end
			else if(store_slice[2][15:12] == password[15:12] && store_slice[2][11:8] == password[11:8] && store_slice[2][7:4] == password[7:4] && store_slice[2][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 2;
			end
			else if(store_slice[3][15:12] == password[15:12] && store_slice[3][11:8] == password[11:8] && store_slice[3][7:4] == password[7:4] && store_slice[3][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 3;
			end
			else if(store_slice[4][15:12] == password[15:12] && store_slice[4][11:8] == password[11:8] && store_slice[4][7:4] == password[7:4] && store_slice[4][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 4;
			end
			else if(store_slice[5][15:12] == password[15:12] && store_slice[5][11:8] == password[11:8] && store_slice[5][7:4] == password[7:4] && store_slice[5][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 5;
			end
			else if(store_slice[6][15:12] == password[15:12] && store_slice[6][11:8] == password[11:8] && store_slice[6][7:4] == password[7:4] && store_slice[6][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 6;
			end
			else if(store_slice[7][15:12] == password[15:12] && store_slice[7][11:8] == password[11:8] && store_slice[7][7:4] == password[7:4] && store_slice[7][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 7;
			end
			else if(store_slice[8][15:12] == password[15:12] && store_slice[8][11:8] == password[11:8] && store_slice[8][7:4] == password[7:4] && store_slice[8][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 8;
			end
			else if(store_slice[9][15:12] == password[15:12] && store_slice[9][11:8] == password[11:8] && store_slice[9][7:4] == password[7:4] && store_slice[9][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 9;
			end
			else if(store_slice[10][15:12] == password[15:12] && store_slice[10][11:8] == password[11:8] && store_slice[10][7:4] == password[7:4] && store_slice[10][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 10;
			end
			else if(store_slice[11][15:12] == password[15:12] && store_slice[11][11:8] == password[11:8] && store_slice[11][7:4] == password[7:4] && store_slice[11][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 11;
			end
			else if(store_slice[12][15:12] == password[15:12] && store_slice[12][11:8] == password[11:8] && store_slice[12][7:4] == password[7:4] && store_slice[12][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 12;
			end
			else if(store_slice[13][15:12] == password[15:12] && store_slice[13][11:8] == password[11:8] && store_slice[13][7:4] == password[7:4] && store_slice[13][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 13;
			end
			else if(store_slice[14][15:12] == password[15:12] && store_slice[14][11:8] == password[11:8] && store_slice[14][7:4] == password[7:4] && store_slice[14][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 14;
			end
			else if(store_slice[15][15:12] == password[15:12] && store_slice[15][11:8] == password[11:8] && store_slice[15][7:4] == password[7:4] && store_slice[15][3:0] == password[3:0]) begin
				Y2 = 1;
				box_open = 15;
			end
			
			else begin
				Y2 = 0;
			end
			
			
		end

		else if (current_state == S4) begin
		    if (get_flag == 1)
		    begin
                boxes_counter = boxes_counter + 1;
                store_slice[box_open] = 16'h0000;
                boxes[box_open] = 1;
				get_flag = 0;
				boxes_len = 16'h0000;               //清零
				boxes_len[box_open] = 1;    //亮
            end
            //待添加闪烁功能
            else begin
				if(blink_counter == 32'd49999999) begin
					boxes_len[box_open] = ~(boxes_len[box_open]);
					blink_counter = 0;
				end
				else begin
					blink_counter = blink_counter + 1;
				end
			end
		end
		
		else begin
			len0 = en0;
			digital0 = eight;
			
			len1 = en1;
			digital1 = eight;
			
			len2 = en2;
			digital2 = eight;
			
			len3 = en3;
			digital3 = eight;
			
			len4 = en4;
			digital4 = eight;
			
			len5 = en5;
			digital5 = eight;
			
			len6 = en6;
			digital6 = eight;
			
			len7 = en7;
			digital7 = eight;
			
			boxes_len = 16'hffff;
		end

	end
	//灯光闪烁
	/*always@(posedge clk) begin
		if(blink_counter == 32'd100000) begin
			if(boxes_len[box_open] == 1) begin
				blink_len = 0;
			end
			else begin
				blink_len = 1;
			end
			blink_counter <= 0;
		end
		else begin
			blink_counter <= blink_counter + 1;
		end
	end*/
	//password转化
	always@(posedge clk) begin
		case(password[15:12])
		4'h0:begin password_bit1 = zero; end
		4'h1:begin password_bit1 = one; end
		4'h2:begin password_bit1 = two; end
		4'h3:begin password_bit1 = three; end
		4'h4:begin password_bit1 = four; end
		4'h5:begin password_bit1 = five; end
		4'h6:begin password_bit1 = six; end
		4'h7:begin password_bit1 = seven; end
		4'h8:begin password_bit1 = eight; end
		4'h9:begin password_bit1 = nine; end
		4'ha:begin password_bit1 = ten; end
		4'hb:begin password_bit1 = eleven; end
		4'hc:begin password_bit1 = twelve; end
		4'hd:begin password_bit1 = thirteen; end
		4'he:begin password_bit1 = fourteen; end
		4'hf:begin password_bit1 = fifteen; end
		default:
			password_bit1 = zero;
		endcase
		
		case(password[11:8])
		4'h0:begin password_bit2 = zero; end
		4'h1:begin password_bit2 = one; end
		4'h2:begin password_bit2 = two; end
		4'h3:begin password_bit2 = three; end
		4'h4:begin password_bit2 = four; end
		4'h5:begin password_bit2 = five; end
		4'h6:begin password_bit2 = six; end
		4'h7:begin password_bit2 = seven; end
		4'h8:begin password_bit2 = eight; end
		4'h9:begin password_bit2 = nine; end
		4'ha:begin password_bit2 = ten; end
		4'hb:begin password_bit2 = eleven; end
		4'hc:begin password_bit2 = twelve; end
		4'hd:begin password_bit2 = thirteen; end
		4'he:begin password_bit2 = fourteen; end
		4'hf:begin password_bit2 = fifteen; end
		default:
			password_bit2 = zero;
		endcase
		
		case(password[7:4])
		4'h0:begin password_bit3 = zero; end
		4'h1:begin password_bit3 = one; end
		4'h2:begin password_bit3 = two; end
		4'h3:begin password_bit3 = three; end
		4'h4:begin password_bit3 = four; end
		4'h5:begin password_bit3 = five; end
		4'h6:begin password_bit3 = six; end
		4'h7:begin password_bit3 = seven; end
		4'h8:begin password_bit3 = eight; end
		4'h9:begin password_bit3 = nine; end
		4'ha:begin password_bit3 = ten; end
		4'hb:begin password_bit3 = eleven; end
		4'hc:begin password_bit3 = twelve; end
		4'hd:begin password_bit3 = thirteen; end
		4'he:begin password_bit3 = fourteen; end
		4'hf:begin password_bit3 = fifteen; end
		default:
			password_bit3 = zero;
		endcase
		
		case(password[3:0])
		4'h0:begin password_bit4 = zero; end
		4'h1:begin password_bit4 = one; end
		4'h2:begin password_bit4 = two; end
		4'h3:begin password_bit4 = three; end
		4'h4:begin password_bit4 = four; end
		4'h5:begin password_bit4 = five; end
		4'h6:begin password_bit4 = six; end
		4'h7:begin password_bit4 = seven; end
		4'h8:begin password_bit4 = eight; end
		4'h9:begin password_bit4 = nine; end
		4'ha:begin password_bit4 = ten; end
		4'hb:begin password_bit4 = eleven; end
		4'hc:begin password_bit4 = twelve; end
		4'hd:begin password_bit4 = thirteen; end
		4'he:begin password_bit4 = fourteen; end
		4'hf:begin password_bit4 = fifteen; end
		default:
			password_bit4 = zero;
		endcase
	end
	//随机箱号显示
	always@(posedge clk) begin
	   case (pos)
		4'h0:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = one;
		end
		4'h1:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = two;
		end
		4'h2:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = three;
		end
		4'h3:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = four;
		end
		4'h4:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = five;
		end
		4'h5:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = six;
		end
		4'h6:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = seven;
		end
		4'h7:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = eight;
		end
		4'h8:
		begin
			four_bit_random_digital1 = zero;
			four_bit_random_digital2 = nine;
		end
		4'h9:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = zero;
		end
		4'ha:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = one;
		end
		4'hb:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = two;
		end
		4'hc:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = three;
		end
		4'hd:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = four;
		end
		4'he:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = five;
		end
		4'hf:
		begin
			four_bit_random_digital1 = one;
			four_bit_random_digital2 = six;
		end
		
		default:
		begin
			four_bit_random_digital1 <= zero;
			four_bit_random_digital2 <= zero;
		end
		endcase
	end
	//随机密码显示
	always @(posedge clk) begin
		case (sixteen_four_bit1_digital)
		4'h0:begin random_password_bit1_digital <= zero; end
		4'h1:begin random_password_bit1_digital <= one; end
		4'h2:begin random_password_bit1_digital <= two; end
		4'h3:begin random_password_bit1_digital <= three; end
		4'h4:begin random_password_bit1_digital <= four; end
		4'h5:begin random_password_bit1_digital <= five; end
		4'h6:begin random_password_bit1_digital <= six; end
		4'h7:begin random_password_bit1_digital <= seven; end
		4'h8:begin random_password_bit1_digital <= eight; end
		4'h9:begin random_password_bit1_digital <= nine; end
		4'ha:begin random_password_bit1_digital <= ten; end
		4'hb:begin random_password_bit1_digital <= eleven; end
		4'hc:begin random_password_bit1_digital <= twelve; end
		4'hd:begin random_password_bit1_digital <= thirteen; end
		4'he:begin random_password_bit1_digital <= fourteen; end
		4'hf:begin random_password_bit1_digital <= fifteen; end
		default:
			random_password_bit1_digital <= zero;
		endcase
	end
	
	always @(posedge clk) begin
		case (sixteen_four_bit2_digital)
		4'h0:begin random_password_bit2_digital <= zero; end
		4'h1:begin random_password_bit2_digital <= one; end
		4'h2:begin random_password_bit2_digital <= two; end
		4'h3:begin random_password_bit2_digital <= three; end
		4'h4:begin random_password_bit2_digital <= four; end
		4'h5:begin random_password_bit2_digital <= five; end
		4'h6:begin random_password_bit2_digital <= six; end
		4'h7:begin random_password_bit2_digital <= seven; end
		4'h8:begin random_password_bit2_digital <= eight; end
		4'h9:begin random_password_bit2_digital <= nine; end
		4'ha:begin random_password_bit2_digital <= ten; end
		4'hb:begin random_password_bit2_digital <= eleven; end
		4'hc:begin random_password_bit2_digital <= twelve; end
		4'hd:begin random_password_bit2_digital <= thirteen; end
		4'he:begin random_password_bit2_digital <= fourteen; end
		4'hf:begin random_password_bit2_digital <= fifteen; end
		default:
			random_password_bit2_digital <= zero;
		endcase
	end
	
	always @(posedge clk) begin
		case (sixteen_four_bit3_digital)
		4'h0:begin random_password_bit3_digital <= zero; end
		4'h1:begin random_password_bit3_digital <= one; end
		4'h2:begin random_password_bit3_digital <= two; end
		4'h3:begin random_password_bit3_digital <= three; end
		4'h4:begin random_password_bit3_digital <= four; end
		4'h5:begin random_password_bit3_digital <= five; end
		4'h6:begin random_password_bit3_digital <= six; end
		4'h7:begin random_password_bit3_digital <= seven; end
		4'h8:begin random_password_bit3_digital <= eight; end
		4'h9:begin random_password_bit3_digital <= nine; end
		4'ha:begin random_password_bit3_digital <= ten; end
		4'hb:begin random_password_bit3_digital <= eleven; end
		4'hc:begin random_password_bit3_digital <= twelve; end
		4'hd:begin random_password_bit3_digital <= thirteen; end
		4'he:begin random_password_bit3_digital <= fourteen; end
		4'hf:begin random_password_bit3_digital <= fifteen; end
		default:
			random_password_bit3_digital <= zero;
		endcase
	end
	
	always @(posedge clk) begin
		case (sixteen_four_bit4_digital)
		4'h0:begin random_password_bit4_digital <= zero; end
		4'h1:begin random_password_bit4_digital <= one; end
		4'h2:begin random_password_bit4_digital <= two; end
		4'h3:begin random_password_bit4_digital <= three; end
		4'h4:begin random_password_bit4_digital <= four; end
		4'h5:begin random_password_bit4_digital <= five; end
		4'h6:begin random_password_bit4_digital <= six; end
		4'h7:begin random_password_bit4_digital <= seven; end
		4'h8:begin random_password_bit4_digital <= eight; end
		4'h9:begin random_password_bit4_digital <= nine; end
		4'ha:begin random_password_bit4_digital <= ten; end
		4'hb:begin random_password_bit4_digital <= eleven; end
		4'hc:begin random_password_bit4_digital <= twelve; end
		4'hd:begin random_password_bit4_digital <= thirteen; end
		4'he:begin random_password_bit4_digital <= fourteen; end
		4'hf:begin random_password_bit4_digital <= fifteen; end
		default:
			random_password_bit4_digital <= zero;
		endcase
	end

endmodule

random.v

`timescale 1ns / 1ps
//
// Company: 
// Engineer: Deadpool
// 
// Create Date: 2019/12/04 20:31:08
// Design Name: 
// Module Name: random
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module random(clk, boxes, four_bit_random, four_bit_random1,four_bit_random2, sixteen_four_bit1,
	sixteen_four_bit2,sixteen_four_bit3,sixteen_four_bit4,password_bit1,password_bit2,
	password_bit3,password_bit4);
	//定义数码管显示数字
    parameter zero = 8'b11111100;
    parameter one = 8'b01100000;
    parameter two = 8'b11011010;
    parameter three = 8'b11110010;
    parameter four = 8'b01100110; 
    parameter five = 8'b10110110;
    parameter six = 8'b10111110; 
    parameter seven = 8'b11100000;
    parameter eight = 8'b11111110; 
    parameter nine = 8'b11100110; 
    parameter ten = 8'b11101110;
    parameter eleven = 8'b00111110;
    parameter twelve = 8'b00011010; 
    parameter thirteen = 8'b01111010; 
    parameter fourteen = 8'b10011110;
    parameter fifteen = 8'b10001110; 
	
	input wire clk;
	input wire[15:0] boxes;					//箱子状态
	output reg[3:0] four_bit_random;		//生成4位随机数
	output reg[7:0] four_bit_random1;			//箱子随机数第一位
	output reg[7:0] four_bit_random2;		//箱子随机数第二位
	
	output reg[7:0] password_bit1;			//密码随机数第一位
	output reg[7:0] password_bit2;			//密码随机数第二位
	output reg[7:0] password_bit3;			//密码随机数第三位
	output reg[7:0] password_bit4;			//密码随机数第四位
	
	output reg[3:0] sixteen_four_bit1;
    output reg[3:0] sixteen_four_bit2;
	output reg[3:0] sixteen_four_bit3;
	output reg[3:0] sixteen_four_bit4;
	
	reg[3:0] four_bit = 0;
	
	reg clk2 = 1;                          //二分频
	reg clk3 = 1;                          //四分频
	reg clk4 = 1;                          //八分频
	
	initial begin
	   sixteen_four_bit1 = 0;
	   sixteen_four_bit2 = 0;
	   sixteen_four_bit3 = 0;
	   sixteen_four_bit4 = 0;
	end
	always @(posedge clk) begin
		clk2 =~ clk2;
	end
	always @(posedge clk2) begin
		clk3 =~ clk3;
	end
	always @(posedge clk3) begin
		clk4 =~ clk4;
	end
	
	
	
	
	always @(posedge clk) begin
		if (four_bit == 4'hf)
			four_bit <= 0;
		else begin
			four_bit <= four_bit + 1;		
		end	
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
		if(boxes[four_bit] == 0) begin
			four_bit <= four_bit + 1;
		end
		else begin
		    four_bit_random <= four_bit;
		end
		
	end

	always @(posedge clk) begin
		if (sixteen_four_bit4 == 4'hf) begin
			sixteen_four_bit4 = 0;
		end
		else begin
			sixteen_four_bit4 = sixteen_four_bit4 + 1;
		end
	end
	
	always @(posedge clk2) begin
		if (sixteen_four_bit3 == 4'hf) begin
			sixteen_four_bit3 = 0;
		end
		else begin
			sixteen_four_bit3 = sixteen_four_bit3 + 1;
		end
	end
	
	always @(posedge clk3) begin
		if (sixteen_four_bit2 == 4'hf) begin
			sixteen_four_bit2 = 0;
		end
		else begin
			sixteen_four_bit2 = sixteen_four_bit2 + 1;
		end
	end
	
	always @(posedge clk4) begin
		if (sixteen_four_bit1 == 4'hf) begin
			sixteen_four_bit1 = 0;
		end
		else begin
			sixteen_four_bit1 = sixteen_four_bit1 + 1;
		end
	end
	
	always @(posedge clk4) begin
		case (sixteen_four_bit1)
		4'h0:begin password_bit1 <= zero; end
		4'h1:begin password_bit1 <= one; end
		4'h2:begin password_bit1 <= two; end
		4'h3:begin password_bit1 <= three; end
		4'h4:begin password_bit1 <= four; end
		4'h5:begin password_bit1 <= five; end
		4'h6:begin password_bit1 <= six; end
		4'h7:begin password_bit1 <= seven; end
		4'h8:begin password_bit1 <= eight; end
		4'h9:begin password_bit1 <= nine; end
		4'ha:begin password_bit1 <= ten; end
		4'hb:begin password_bit1 <= eleven; end
		4'hc:begin password_bit1 <= twelve; end
		4'hd:begin password_bit1 <= thirteen; end
		4'he:begin password_bit1 <= fourteen; end
		4'hf:begin password_bit1 <= fifteen; end
		default:
			password_bit1 <= zero;
		endcase
	end
	
	always @(posedge clk3) begin
		case (sixteen_four_bit2)
		4'h0:begin password_bit2 <= zero; end
		4'h1:begin password_bit2 <= one; end
		4'h2:begin password_bit2 <= two; end
		4'h3:begin password_bit2 <= three; end
		4'h4:begin password_bit2 <= four; end
		4'h5:begin password_bit2 <= five; end
		4'h6:begin password_bit2 <= six; end
		4'h7:begin password_bit2 <= seven; end
		4'h8:begin password_bit2 <= eight; end
		4'h9:begin password_bit2 <= nine; end
		4'ha:begin password_bit2 <= ten; end
		4'hb:begin password_bit2 <= eleven; end
		4'hc:begin password_bit2 <= twelve; end
		4'hd:begin password_bit2 <= thirteen; end
		4'he:begin password_bit2 <= fourteen; end
		4'hf:begin password_bit2 <= fifteen; end
		default:
			password_bit2 <= zero;
		endcase
	end
	
	always @(posedge clk2) begin
		case (sixteen_four_bit3)
		4'h0:begin password_bit3 <= zero; end
		4'h1:begin password_bit3 <= one; end
		4'h2:begin password_bit3 <= two; end
		4'h3:begin password_bit3 <= three; end
		4'h4:begin password_bit3 <= four; end
		4'h5:begin password_bit3 <= five; end
		4'h6:begin password_bit3 <= six; end
		4'h7:begin password_bit3 <= seven; end
		4'h8:begin password_bit3 <= eight; end
		4'h9:begin password_bit3 <= nine; end
		4'ha:begin password_bit3 <= ten; end
		4'hb:begin password_bit3 <= eleven; end
		4'hc:begin password_bit3 <= twelve; end
		4'hd:begin password_bit3 <= thirteen; end
		4'he:begin password_bit3 <= fourteen; end
		4'hf:begin password_bit3 <= fifteen; end
		default:
			password_bit3 <= zero;
		endcase
	end
	
	always @(posedge clk) begin
		case (sixteen_four_bit4)
		4'h0:begin password_bit4 <= zero; end
		4'h1:begin password_bit4 <= one; end
		4'h2:begin password_bit4 <= two; end
		4'h3:begin password_bit4 <= three; end
		4'h4:begin password_bit4 <= four; end
		4'h5:begin password_bit4 <= five; end
		4'h6:begin password_bit4 <= six; end
		4'h7:begin password_bit4 <= seven; end
		4'h8:begin password_bit4 <= eight; end
		4'h9:begin password_bit4 <= nine; end
		4'ha:begin password_bit4 <= ten; end
		4'hb:begin password_bit4 <= eleven; end
		4'hc:begin password_bit4 <= twelve; end
		4'hd:begin password_bit4 <= thirteen; end
		4'he:begin password_bit4 <= fourteen; end
		4'hf:begin password_bit4 <= fifteen; end
		default:
			password_bit4 <= zero;
		endcase
	end
	
	always @(posedge clk) begin
		case (four_bit_random)
		4'h0:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= one;
		end
		4'h1:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= two;
		end
		4'h2:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= three;
		end
		4'h3:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= four;
		end
		4'h4:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= five;
		end
		4'h5:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= six;
		end
		4'h6:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= seven;
		end
		4'h7:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= eight;
		end
		4'h8:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= nine;
		end
		4'h9:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= zero;
		end
		4'ha:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= one;
		end
		4'hb:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= two;
		end
		4'hc:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= three;
		end
		4'hd:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= four;
		end
		4'he:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= five;
		end
		4'hf:
		begin
			four_bit_random1 <= one;
			four_bit_random2 <= six;
		end
		
		default:
		begin
			four_bit_random1 <= zero;
			four_bit_random2 <= zero;
		end
		endcase
	end
	

endmodule

约束文件

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk]
set_property PACKAGE_PIN K3 [get_ports {boxes_len[0]}]
set_property PACKAGE_PIN M1 [get_ports {boxes_len[1]}]
set_property PACKAGE_PIN L1 [get_ports {boxes_len[2]}]
set_property PACKAGE_PIN K6 [get_ports {boxes_len[3]}]
set_property PACKAGE_PIN J5 [get_ports {boxes_len[4]}]
set_property PACKAGE_PIN H5 [get_ports {boxes_len[5]}]
set_property PACKAGE_PIN H6 [get_ports {boxes_len[6]}]
set_property PACKAGE_PIN K1 [get_ports {boxes_len[7]}]
set_property PACKAGE_PIN K2 [get_ports {boxes_len[8]}]
set_property PACKAGE_PIN J2 [get_ports {boxes_len[9]}]
set_property PACKAGE_PIN J3 [get_ports {boxes_len[10]}]
set_property PACKAGE_PIN H4 [get_ports {boxes_len[11]}]
set_property PACKAGE_PIN J4 [get_ports {boxes_len[12]}]
set_property PACKAGE_PIN G3 [get_ports {boxes_len[13]}]
set_property PACKAGE_PIN G4 [get_ports {boxes_len[14]}]
set_property PACKAGE_PIN F6 [get_ports {boxes_len[15]}]
set_property PACKAGE_PIN P17 [get_ports clk]
set_property PACKAGE_PIN G6 [get_ports {len[0]}]
set_property PACKAGE_PIN E1 [get_ports {len[1]}]
set_property PACKAGE_PIN F1 [get_ports {len[2]}]
set_property PACKAGE_PIN G1 [get_ports {len[3]}]
set_property PACKAGE_PIN H1 [get_ports {len[4]}]
set_property PACKAGE_PIN C1 [get_ports {len[5]}]
set_property PACKAGE_PIN C2 [get_ports {len[6]}]
set_property PACKAGE_PIN G2 [get_ports {len[7]}]
set_property PACKAGE_PIN T5 [get_ports {password[0]}]
set_property PACKAGE_PIN T3 [get_ports {password[1]}]
set_property PACKAGE_PIN R3 [get_ports {password[2]}]
set_property PACKAGE_PIN V4 [get_ports {password[3]}]
set_property PACKAGE_PIN V5 [get_ports {password[4]}]
set_property PACKAGE_PIN V2 [get_ports {password[5]}]
set_property PACKAGE_PIN U2 [get_ports {password[6]}]
set_property PACKAGE_PIN U3 [get_ports {password[7]}]
set_property PACKAGE_PIN R1 [get_ports {password[8]}]
set_property PACKAGE_PIN N4 [get_ports {password[9]}]
set_property PACKAGE_PIN M4 [get_ports {password[10]}]
set_property PACKAGE_PIN R2 [get_ports {password[11]}]
set_property PACKAGE_PIN P2 [get_ports {password[12]}]
set_property PACKAGE_PIN P3 [get_ports {password[13]}]
set_property PACKAGE_PIN P4 [get_ports {password[14]}]
set_property PACKAGE_PIN P5 [get_ports {password[15]}]
set_property PACKAGE_PIN D5 [get_ports {segs0[0]}]
set_property PACKAGE_PIN B2 [get_ports {segs0[1]}]
set_property PACKAGE_PIN B3 [get_ports {segs0[2]}]
set_property PACKAGE_PIN A1 [get_ports {segs0[3]}]
set_property PACKAGE_PIN B1 [get_ports {segs0[4]}]
set_property PACKAGE_PIN A3 [get_ports {segs0[5]}]
set_property PACKAGE_PIN A4 [get_ports {segs0[6]}]
set_property PACKAGE_PIN B4 [get_ports {segs0[7]}]
set_property PACKAGE_PIN H2 [get_ports {segs1[0]}]
set_property PACKAGE_PIN D2 [get_ports {segs1[1]}]
set_property PACKAGE_PIN E2 [get_ports {segs1[2]}]
set_property PACKAGE_PIN F3 [get_ports {segs1[3]}]
set_property PACKAGE_PIN F4 [get_ports {segs1[4]}]
set_property PACKAGE_PIN D3 [get_ports {segs1[5]}]
set_property PACKAGE_PIN E3 [get_ports {segs1[6]}]
set_property PACKAGE_PIN D4 [get_ports {segs1[7]}]
set_property PACKAGE_PIN U4 [get_ports X2]
set_property PACKAGE_PIN R17 [get_ports X3]
set_property PACKAGE_PIN R11 [get_ports X1]
set_property PACKAGE_PIN V1 [get_ports X4]


set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[0]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[1]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[2]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[3]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[4]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[5]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[6]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[7]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[8]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[9]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[10]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[11]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[12]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[13]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[14]}]
set_property IOSTANDARD LVCMOS33  [get_ports {boxes_len[15]}]
set_property IOSTANDARD LVCMOS33  [get_ports clk]
set_property IOSTANDARD LVCMOS33  [get_ports {len[0]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[1]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[2]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[3]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[4]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[5]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[6]}]
set_property IOSTANDARD LVCMOS33  [get_ports {len[7]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[0]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[1]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[2]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[3]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[4]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[5]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[6]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[7]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[8]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[9]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[10]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[11]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[12]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[13]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[14]}]
set_property IOSTANDARD LVCMOS33  [get_ports {password[15]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[0]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[1]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[2]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[3]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[4]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[5]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[6]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs0[7]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[0]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[1]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[2]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[3]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[4]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[5]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[6]}]
set_property IOSTANDARD LVCMOS33  [get_ports {segs1[7]}]
set_property IOSTANDARD LVCMOS33  [get_ports X2]
set_property IOSTANDARD LVCMOS33  [get_ports X3]
set_property IOSTANDARD LVCMOS33  [get_ports X1]
set_property IOSTANDARD LVCMOS33  [get_ports X4]
  • 10
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值