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) begincurrent_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}:beginnext_state = S0;end{4'b1000,S1}:beginnext_state = S0;end{4'b1000,S2}:beginnext_state = S2;end{4'b1000,S4}:beginnext_state = S0;end{4'b1000,S5}:beginnext_state = S0;end{4'b0100,S0}:beginif(Y1 == 1)next_state = S0;else beginnext_state = S1;endend{4'b0100,S1}:beginnext_state = S1; end{4'b0100,S2}:beginnext_state = S2;end{4'b0100,S4}:beginnext_state = S4;end{4'b0100,S5}:beginnext_state = S5;end{4'b0010,S0}:beginif (Y3 == 1) beginnext_state = S0;endelse beginnext_state = S2;endend{4'b0010,S1}:beginnext_state = S1;end{4'b0010,S2}:beginnext_state = S2;end{4'b0010,S4}:beginnext_state = S4;end{4'b0010,S5}:beginnext_state = S5;end{4'b0001,S0}:beginnext_state = S0;end{4'b0001,S1}:beginnext_state = S1;end{4'b0001,S2}:beginnext_state = S3;end{4'b0001,S4}:beginnext_state = S4;end{4'b0001,S5}:beginnext_state = S5;end{4'b0000,S3}:beginif(Y2 == 1) beginif(wait_time == 32'd100000000) beginnext_state = S4;endelse beginnext_state = S3;wait_time = wait_time + 1;endendelse beginnext_state = S5;endenddefault:next_state = current_state;endcaseendendmodule

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 beginY1 = 1'b0;  //快递箱是否满,初始为空Y2 = 1'b1;  //密码是否正确,初始未知Y3 = 1'b1;  //快递箱是否空,初始为空segs0 = zero;segs1 = zero;end//为Y1,Y3赋值always @(posedge clk) beginif(boxes_counter == 5'd0)beginY1 <= 1;Y3 <= 0;endelse if(boxes_counter == 5'd16)beginY1 <= 0;Y3 <= 1;endelsebeginY1 <= 0;Y3 <= 0;endend//分频always@(posedge clk)beginif(timer_counter == 32'd49999)begintimer_counter <= 0;clk2 =~clk2;endelse begintimer_counter <= timer_counter + 1;endend//计数器always @(posedge clk2) beginif (counter == 3'b111) begincounter <= 0;endelse begincounter <= counter + 1;endend//数码管显示always @(posedge clk) begincase(counter)3'b000:beginlen = len0;segs0 = digital0;             end3'b001:beginlen = len1;segs0 = digital1;end3'b010:beginlen = len2;segs0 = digital2;end3'b011:beginlen = len3;segs0 = digital3;end3'b100:beginlen = len4;segs1 = digital4;end3'b101:beginlen = len5;segs1 = digital5;end3'b110:beginlen = len6;segs1 = digital6;end3'b111:beginlen = len7;segs1 = digital7;endendcaseend//现态改变,才进行该always模块always @(posedge clk) beginif (current_state == S0) beginsave_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_counterif (boxes_counter == 5'd0)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = zero;endelse if(boxes_counter == 5'd1)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = one;endelse if(boxes_counter == 5'd2)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = two;endelse if(boxes_counter == 5'd3)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = three;endelse if(boxes_counter == 5'd4)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = four;endelse if(boxes_counter == 5'd5)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = five;endelse if(boxes_counter == 5'd6)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = six;endelse if(boxes_counter == 5'd7)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = seven;endelse if(boxes_counter == 5'd8)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = eight;endelse if(boxes_counter == 5'd9)beginlen6 = en6;digital6 = zero;len7 = en7;digital7 = nine;endelse if(boxes_counter == 5'd10)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = zero;endelse if(boxes_counter == 5'd11)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = one;endelse if(boxes_counter == 5'd12)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = two;endelse if(boxes_counter == 5'd13)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = three;endelse if(boxes_counter == 5'd14)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = four;endelse if(boxes_counter == 5'd15)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = five;endelse if(boxes_counter == 5'd16)beginlen6 = en6;digital6 = one;len7 = en7;digital7 = six;endelse beginlen6 = en6;digital6 = fifteen;len7 = en7;digital7 = fifteen;end//LED亮灯使能 -> 就是boxes的状态boxes_len = boxes;endelse if (current_state == S1) begin if(save_flag == 1)beginpos = 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;endelse beginlen0 = 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;endendelse if (current_state == S2) beginlen0 = enoff;len1 = enoff;len2 = enoff;len3 = enoff;len4 = enoff;len5 = enoff;len6 = enoff;len7 = enoff;boxes_len = 16'h0000;endelse if (current_state == S3) beginlen0 = 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]) beginY2 = 1;box_open = 0;endelse 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]) beginY2 = 1;box_open = 1;endelse 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]) beginY2 = 1;box_open = 2;endelse 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]) beginY2 = 1;box_open = 3;endelse 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]) beginY2 = 1;box_open = 4;endelse 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]) beginY2 = 1;box_open = 5;endelse 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]) beginY2 = 1;box_open = 6;endelse 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]) beginY2 = 1;box_open = 7;endelse 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]) beginY2 = 1;box_open = 8;endelse 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]) beginY2 = 1;box_open = 9;endelse 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]) beginY2 = 1;box_open = 10;endelse 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]) beginY2 = 1;box_open = 11;endelse 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]) beginY2 = 1;box_open = 12;endelse 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]) beginY2 = 1;box_open = 13;endelse 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]) beginY2 = 1;box_open = 14;endelse 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]) beginY2 = 1;box_open = 15;endelse beginY2 = 0;endendelse if (current_state == S4) beginif (get_flag == 1)beginboxes_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 beginif(blink_counter == 32'd49999999) beginboxes_len[box_open] = ~(boxes_len[box_open]);blink_counter = 0;endelse beginblink_counter = blink_counter + 1;endendendelse beginlen0 = 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;endend//灯光闪烁/*always@(posedge clk) beginif(blink_counter == 32'd100000) beginif(boxes_len[box_open] == 1) beginblink_len = 0;endelse beginblink_len = 1;endblink_counter <= 0;endelse beginblink_counter <= blink_counter + 1;endend*///password转化always@(posedge clk) begincase(password[15:12])4'h0:begin password_bit1 = zero; end4'h1:begin password_bit1 = one; end4'h2:begin password_bit1 = two; end4'h3:begin password_bit1 = three; end4'h4:begin password_bit1 = four; end4'h5:begin password_bit1 = five; end4'h6:begin password_bit1 = six; end4'h7:begin password_bit1 = seven; end4'h8:begin password_bit1 = eight; end4'h9:begin password_bit1 = nine; end4'ha:begin password_bit1 = ten; end4'hb:begin password_bit1 = eleven; end4'hc:begin password_bit1 = twelve; end4'hd:begin password_bit1 = thirteen; end4'he:begin password_bit1 = fourteen; end4'hf:begin password_bit1 = fifteen; enddefault:password_bit1 = zero;endcasecase(password[11:8])4'h0:begin password_bit2 = zero; end4'h1:begin password_bit2 = one; end4'h2:begin password_bit2 = two; end4'h3:begin password_bit2 = three; end4'h4:begin password_bit2 = four; end4'h5:begin password_bit2 = five; end4'h6:begin password_bit2 = six; end4'h7:begin password_bit2 = seven; end4'h8:begin password_bit2 = eight; end4'h9:begin password_bit2 = nine; end4'ha:begin password_bit2 = ten; end4'hb:begin password_bit2 = eleven; end4'hc:begin password_bit2 = twelve; end4'hd:begin password_bit2 = thirteen; end4'he:begin password_bit2 = fourteen; end4'hf:begin password_bit2 = fifteen; enddefault:password_bit2 = zero;endcasecase(password[7:4])4'h0:begin password_bit3 = zero; end4'h1:begin password_bit3 = one; end4'h2:begin password_bit3 = two; end4'h3:begin password_bit3 = three; end4'h4:begin password_bit3 = four; end4'h5:begin password_bit3 = five; end4'h6:begin password_bit3 = six; end4'h7:begin password_bit3 = seven; end4'h8:begin password_bit3 = eight; end4'h9:begin password_bit3 = nine; end4'ha:begin password_bit3 = ten; end4'hb:begin password_bit3 = eleven; end4'hc:begin password_bit3 = twelve; end4'hd:begin password_bit3 = thirteen; end4'he:begin password_bit3 = fourteen; end4'hf:begin password_bit3 = fifteen; enddefault:password_bit3 = zero;endcasecase(password[3:0])4'h0:begin password_bit4 = zero; end4'h1:begin password_bit4 = one; end4'h2:begin password_bit4 = two; end4'h3:begin password_bit4 = three; end4'h4:begin password_bit4 = four; end4'h5:begin password_bit4 = five; end4'h6:begin password_bit4 = six; end4'h7:begin password_bit4 = seven; end4'h8:begin password_bit4 = eight; end4'h9:begin password_bit4 = nine; end4'ha:begin password_bit4 = ten; end4'hb:begin password_bit4 = eleven; end4'hc:begin password_bit4 = twelve; end4'hd:begin password_bit4 = thirteen; end4'he:begin password_bit4 = fourteen; end4'hf:begin password_bit4 = fifteen; enddefault:password_bit4 = zero;endcaseend//随机箱号显示always@(posedge clk) begincase (pos)4'h0:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = one;end4'h1:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = two;end4'h2:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = three;end4'h3:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = four;end4'h4:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = five;end4'h5:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = six;end4'h6:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = seven;end4'h7:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = eight;end4'h8:beginfour_bit_random_digital1 = zero;four_bit_random_digital2 = nine;end4'h9:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = zero;end4'ha:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = one;end4'hb:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = two;end4'hc:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = three;end4'hd:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = four;end4'he:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = five;end4'hf:beginfour_bit_random_digital1 = one;four_bit_random_digital2 = six;enddefault:beginfour_bit_random_digital1 <= zero;four_bit_random_digital2 <= zero;endendcaseend//随机密码显示always @(posedge clk) begincase (sixteen_four_bit1_digital)4'h0:begin random_password_bit1_digital <= zero; end4'h1:begin random_password_bit1_digital <= one; end4'h2:begin random_password_bit1_digital <= two; end4'h3:begin random_password_bit1_digital <= three; end4'h4:begin random_password_bit1_digital <= four; end4'h5:begin random_password_bit1_digital <= five; end4'h6:begin random_password_bit1_digital <= six; end4'h7:begin random_password_bit1_digital <= seven; end4'h8:begin random_password_bit1_digital <= eight; end4'h9:begin random_password_bit1_digital <= nine; end4'ha:begin random_password_bit1_digital <= ten; end4'hb:begin random_password_bit1_digital <= eleven; end4'hc:begin random_password_bit1_digital <= twelve; end4'hd:begin random_password_bit1_digital <= thirteen; end4'he:begin random_password_bit1_digital <= fourteen; end4'hf:begin random_password_bit1_digital <= fifteen; enddefault:random_password_bit1_digital <= zero;endcaseendalways @(posedge clk) begincase (sixteen_four_bit2_digital)4'h0:begin random_password_bit2_digital <= zero; end4'h1:begin random_password_bit2_digital <= one; end4'h2:begin random_password_bit2_digital <= two; end4'h3:begin random_password_bit2_digital <= three; end4'h4:begin random_password_bit2_digital <= four; end4'h5:begin random_password_bit2_digital <= five; end4'h6:begin random_password_bit2_digital <= six; end4'h7:begin random_password_bit2_digital <= seven; end4'h8:begin random_password_bit2_digital <= eight; end4'h9:begin random_password_bit2_digital <= nine; end4'ha:begin random_password_bit2_digital <= ten; end4'hb:begin random_password_bit2_digital <= eleven; end4'hc:begin random_password_bit2_digital <= twelve; end4'hd:begin random_password_bit2_digital <= thirteen; end4'he:begin random_password_bit2_digital <= fourteen; end4'hf:begin random_password_bit2_digital <= fifteen; enddefault:random_password_bit2_digital <= zero;endcaseendalways @(posedge clk) begincase (sixteen_four_bit3_digital)4'h0:begin random_password_bit3_digital <= zero; end4'h1:begin random_password_bit3_digital <= one; end4'h2:begin random_password_bit3_digital <= two; end4'h3:begin random_password_bit3_digital <= three; end4'h4:begin random_password_bit3_digital <= four; end4'h5:begin random_password_bit3_digital <= five; end4'h6:begin random_password_bit3_digital <= six; end4'h7:begin random_password_bit3_digital <= seven; end4'h8:begin random_password_bit3_digital <= eight; end4'h9:begin random_password_bit3_digital <= nine; end4'ha:begin random_password_bit3_digital <= ten; end4'hb:begin random_password_bit3_digital <= eleven; end4'hc:begin random_password_bit3_digital <= twelve; end4'hd:begin random_password_bit3_digital <= thirteen; end4'he:begin random_password_bit3_digital <= fourteen; end4'hf:begin random_password_bit3_digital <= fifteen; enddefault:random_password_bit3_digital <= zero;endcaseendalways @(posedge clk) begincase (sixteen_four_bit4_digital)4'h0:begin random_password_bit4_digital <= zero; end4'h1:begin random_password_bit4_digital <= one; end4'h2:begin random_password_bit4_digital <= two; end4'h3:begin random_password_bit4_digital <= three; end4'h4:begin random_password_bit4_digital <= four; end4'h5:begin random_password_bit4_digital <= five; end4'h6:begin random_password_bit4_digital <= six; end4'h7:begin random_password_bit4_digital <= seven; end4'h8:begin random_password_bit4_digital <= eight; end4'h9:begin random_password_bit4_digital <= nine; end4'ha:begin random_password_bit4_digital <= ten; end4'hb:begin random_password_bit4_digital <= eleven; end4'hc:begin random_password_bit4_digital <= twelve; end4'hd:begin random_password_bit4_digital <= thirteen; end4'he:begin random_password_bit4_digital <= fourteen; end4'hf:begin random_password_bit4_digital <= fifteen; enddefault:random_password_bit4_digital <= zero;endcaseendendmodule

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 beginsixteen_four_bit1 = 0;sixteen_four_bit2 = 0;sixteen_four_bit3 = 0;sixteen_four_bit4 = 0;endalways @(posedge clk) beginclk2 =~ clk2;endalways @(posedge clk2) beginclk3 =~ clk3;endalways @(posedge clk3) beginclk4 =~ clk4;endalways @(posedge clk) beginif (four_bit == 4'hf)four_bit <= 0;else beginfour_bit <= four_bit + 1;     end if(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endif(boxes[four_bit] == 0) beginfour_bit <= four_bit + 1;endelse beginfour_bit_random <= four_bit;endendalways @(posedge clk) beginif (sixteen_four_bit4 == 4'hf) beginsixteen_four_bit4 = 0;endelse beginsixteen_four_bit4 = sixteen_four_bit4 + 1;endendalways @(posedge clk2) beginif (sixteen_four_bit3 == 4'hf) beginsixteen_four_bit3 = 0;endelse beginsixteen_four_bit3 = sixteen_four_bit3 + 1;endendalways @(posedge clk3) beginif (sixteen_four_bit2 == 4'hf) beginsixteen_four_bit2 = 0;endelse beginsixteen_four_bit2 = sixteen_four_bit2 + 1;endendalways @(posedge clk4) beginif (sixteen_four_bit1 == 4'hf) beginsixteen_four_bit1 = 0;endelse beginsixteen_four_bit1 = sixteen_four_bit1 + 1;endendalways @(posedge clk4) begincase (sixteen_four_bit1)4'h0:begin password_bit1 <= zero; end4'h1:begin password_bit1 <= one; end4'h2:begin password_bit1 <= two; end4'h3:begin password_bit1 <= three; end4'h4:begin password_bit1 <= four; end4'h5:begin password_bit1 <= five; end4'h6:begin password_bit1 <= six; end4'h7:begin password_bit1 <= seven; end4'h8:begin password_bit1 <= eight; end4'h9:begin password_bit1 <= nine; end4'ha:begin password_bit1 <= ten; end4'hb:begin password_bit1 <= eleven; end4'hc:begin password_bit1 <= twelve; end4'hd:begin password_bit1 <= thirteen; end4'he:begin password_bit1 <= fourteen; end4'hf:begin password_bit1 <= fifteen; enddefault:password_bit1 <= zero;endcaseendalways @(posedge clk3) begincase (sixteen_four_bit2)4'h0:begin password_bit2 <= zero; end4'h1:begin password_bit2 <= one; end4'h2:begin password_bit2 <= two; end4'h3:begin password_bit2 <= three; end4'h4:begin password_bit2 <= four; end4'h5:begin password_bit2 <= five; end4'h6:begin password_bit2 <= six; end4'h7:begin password_bit2 <= seven; end4'h8:begin password_bit2 <= eight; end4'h9:begin password_bit2 <= nine; end4'ha:begin password_bit2 <= ten; end4'hb:begin password_bit2 <= eleven; end4'hc:begin password_bit2 <= twelve; end4'hd:begin password_bit2 <= thirteen; end4'he:begin password_bit2 <= fourteen; end4'hf:begin password_bit2 <= fifteen; enddefault:password_bit2 <= zero;endcaseendalways @(posedge clk2) begincase (sixteen_four_bit3)4'h0:begin password_bit3 <= zero; end4'h1:begin password_bit3 <= one; end4'h2:begin password_bit3 <= two; end4'h3:begin password_bit3 <= three; end4'h4:begin password_bit3 <= four; end4'h5:begin password_bit3 <= five; end4'h6:begin password_bit3 <= six; end4'h7:begin password_bit3 <= seven; end4'h8:begin password_bit3 <= eight; end4'h9:begin password_bit3 <= nine; end4'ha:begin password_bit3 <= ten; end4'hb:begin password_bit3 <= eleven; end4'hc:begin password_bit3 <= twelve; end4'hd:begin password_bit3 <= thirteen; end4'he:begin password_bit3 <= fourteen; end4'hf:begin password_bit3 <= fifteen; enddefault:password_bit3 <= zero;endcaseendalways @(posedge clk) begincase (sixteen_four_bit4)4'h0:begin password_bit4 <= zero; end4'h1:begin password_bit4 <= one; end4'h2:begin password_bit4 <= two; end4'h3:begin password_bit4 <= three; end4'h4:begin password_bit4 <= four; end4'h5:begin password_bit4 <= five; end4'h6:begin password_bit4 <= six; end4'h7:begin password_bit4 <= seven; end4'h8:begin password_bit4 <= eight; end4'h9:begin password_bit4 <= nine; end4'ha:begin password_bit4 <= ten; end4'hb:begin password_bit4 <= eleven; end4'hc:begin password_bit4 <= twelve; end4'hd:begin password_bit4 <= thirteen; end4'he:begin password_bit4 <= fourteen; end4'hf:begin password_bit4 <= fifteen; enddefault:password_bit4 <= zero;endcaseendalways @(posedge clk) begincase (four_bit_random)4'h0:beginfour_bit_random1 <= zero;four_bit_random2 <= one;end4'h1:beginfour_bit_random1 <= zero;four_bit_random2 <= two;end4'h2:beginfour_bit_random1 <= zero;four_bit_random2 <= three;end4'h3:beginfour_bit_random1 <= zero;four_bit_random2 <= four;end4'h4:beginfour_bit_random1 <= zero;four_bit_random2 <= five;end4'h5:beginfour_bit_random1 <= zero;four_bit_random2 <= six;end4'h6:beginfour_bit_random1 <= zero;four_bit_random2 <= seven;end4'h7:beginfour_bit_random1 <= zero;four_bit_random2 <= eight;end4'h8:beginfour_bit_random1 <= zero;four_bit_random2 <= nine;end4'h9:beginfour_bit_random1 <= one;four_bit_random2 <= zero;end4'ha:beginfour_bit_random1 <= one;four_bit_random2 <= one;end4'hb:beginfour_bit_random1 <= one;four_bit_random2 <= two;end4'hc:beginfour_bit_random1 <= one;four_bit_random2 <= three;end4'hd:beginfour_bit_random1 <= one;four_bit_random2 <= four;end4'he:beginfour_bit_random1 <= one;four_bit_random2 <= five;end4'hf:beginfour_bit_random1 <= one;four_bit_random2 <= six;enddefault:beginfour_bit_random1 <= zero;four_bit_random2 <= zero;endendcaseendendmodule

约束文件

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]

Verilog实现快递柜相关推荐

  1. java快递柜系统开发_他专注智能柜系统开发,产品日使用频次达60万次,服务近400厂家...

    陈巨擘:智能化生活无处不在! 大众创业万众创新,创业者成为时代的英雄.记录他们的坚持与努力,即是呈现这个时代的发展与变革,这是我们做"创业者专访"的初衷. 米库创业网(miku99 ...

  2. 共享快递柜业务场景实战(服务构建)

    简介: 使用物联网平台,快速构建一个高性能的共享快递柜业务 1.背景 当我们的设备和物联网平台建立mqtt连接通道后,会根据业务需求传输不同的数据.本次以共享快递柜业务场景讲解topic和payloa ...

  3. 快递取件码生成软件_一种自动生成取件码的快递柜及其使用方法与流程

    本发明涉及快递柜技术领域,尤其是自动生成取件码的快递柜及其使用方法. 背景技术: 近年来,随着快递业的迅速发展,快递柜的应用也越发广泛.为了解决快递智能存储问题,许多小区已经安装了智能快递柜,快递员将 ...

  4. 待支付取件费用是什么意思_1元保管费与直接取件,你赞赏丰巢快递柜了吗?...

    仅仅在几年以前,收快递还是一件开心的事情,至少在一线大城市中,大多数快递员都会送货上门,将快递直达用户手中.但是这样的场景已经成为过去,越来越多的情况是:快递员打电话或者是短信通知,要求客户自取. 自 ...

  5. 邮政管理部门发话:未获用户同意投放快递柜属违法行为

    近日,丰巢快递柜开始向用户收费引发网络热议.杭州"硬核"小区宣布暂停使用丰巢抵制收费,更是将丰巢推向风口浪尖. 据江苏省邮政管理局统计,省内15%的快递采取了快递柜方式投递. 江苏 ...

  6. 快递取件码生成软件_一种快递柜取件码生成装置及其使用方法与流程

    本发明涉及快递柜技术领域,尤其是快递柜取件码生成装置及其使用方法. 背景技术: 随着人们生活与消费水平的提高,快递业也迅猛发展,快递柜的应用也越来越普及.现如今,许多社区或公共场所已经安装了大量的智能 ...

  7. [附源码]JAVA+ssm基于Internet快递柜管理系统(程序+Lw)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. 还在为取快递而烦恼吗?智宇物联助力自动快递柜

    电子商务的快速发展促进了我国快递业的升级与转型.面对日益增长的对电子商务快递的需求,许多快递公司加入了物联网的布局,希望通过物联网技术.智能机器人和大数据量来提高运输效率.智能快递柜就是其中之一. 随 ...

  9. 菜鸟首次公开巴西3年规划 1000组中国智能快递柜来到巴西

    "足不出户,只需线上下单就有快递送货上门."全球双11大促期间,在巴西圣保罗大学读书的潮酷女孩索尼娅·佛哈斯(Sonia Ferraz)收到了她梦寐以求的哈利·波特巫师袍.两天前在 ...

最新文章

  1. LeetCode简单题之数字转换为十六进制数
  2. 基于FPGA的gardner同步环设计
  3. android 动态让控件超出屏幕_android 动态设置屏幕控件宽高度
  4. python汉字作为变量_在Python3x中不能使用汉字作为变量名。()
  5. Spring Ioc源码分析 之 Bean的加载(6):属性填充(populateBean())
  6. Mongodb 自动增长 自增id 实现
  7. enum 定义3个属性_和平精英:合金龙骨有3个隐藏属性,比玛莎“水下无敌”还唬人...
  8. css3 transform matrix 深入理解
  9. startActivity流程(上)
  10. 如何锁定计算机桌面图标,解决win7、win10系统怎么锁定电脑桌面图标
  11. 软件需求,概要设计,详细设计(文档)
  12. calibre部署指南:docker一键部署calibre在线书库
  13. jsonobject中getkey_获取JSON中所有的KEY
  14. 关于调ads1115时差分数据错误的时序分析,以及ads1115的计算公式
  15. gpio_desc()的分析
  16. 威海海燕计算机学校,与中成学校一起成长 ——高海燕
  17. 爬取B站弹幕制作词云图
  18. 华为鸿蒙研发团队负责人,走进华为北研所:EMUI 11 背后的“人因研究”到底是什么?...
  19. Python飞机大战(完整版)
  20. 【HDU】1862 EXCEL排序(结构体排序)

热门文章

  1. 真实故事:因为感动在一起,注定走不长久
  2. 如何提高程序员的工作效率 这几招就够了
  3. 人民币符号怎么打?美元符号怎么打?
  4. java 公式计算_java 实现的公式计算
  5. WEB安全 TCP协议安全 应用安全 信息安全 业务安全 SDK嵌入式防护 等保 攻击溯源 CDN DCDN
  6. 百度地图开发技术方案及解决办法
  7. Gmail 中出现紫字的怪现象
  8. nginx 配置网站通用的伪静态代码
  9. windows下使用vscode编写运行以及调试C/C++
  10. 海康威视校招C++岗面经