NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,点亮板载的8个8位数码管
简化版动态点亮
- 1. vivado文件编写,根据模块设计图
- 1.1 点亮数码管之前首先产生一个100ms自增长的数据data[26:0]
- 1.1.1 时序图
- 1.1.2 data_gen.v 文件
- 1.1.3 tb_data_gen.v 文件
- 1.2 点亮数码管的核心在于将十进制数不通过除法器转换为二进制,这里使用bcd_8421码
- 1.2.0 将十进制11转换为bcd_8421码的简单过程
- 1.2.1 时序图
- 1.2.2 bcd_8421.v文件
- 1.2.3 tb_bcd_8421.v文件
- 1.3 将bcd_8421包装为seg_dynamic
- 1.3.1 时序图
- 1.3.2 seg_dynamic.v文件
- 1.3.3 tb_seg_dynamic.v文件
- 1.3.4 sel信号和seg信号不同步的问题
- 1.4 将seg_dynamic和data_gen包装为top_seg_dynamic
- 1.4.1 top_seg_dynamic文件
- 1.4.2 tb_top_seg_dynamic文件
- 2. NEXYS4_DDR迪芝伦XC7A100TCSG324-1型的原理图与管脚绑定
- 2.1相关原理图
- 2.2 seg_dynamic.xdc文件
1. vivado文件编写,根据模块设计图
系统的时钟为100MHz,管脚E3提供;使用复位引脚为拨码开关,管脚K15
1.1 点亮数码管之前首先产生一个100ms自增长的数据data[26:0]
1.1.1 时序图
1.1.2 data_gen.v 文件
module data_gen
#(parameter CNT_100MS_MAX = 27'd9_999_999,parameter DATA_MAX = 27'd99_999_999)
(input wire sys_clk ,input wire sys_rst_n ,output reg [26:0] data
);reg [26:0] cnt_100ms;
reg cnt_flag;//cnt_100ms
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)cnt_100ms <= 27'd0;else if(cnt_100ms == CNT_100MS_MAX)cnt_100ms <= 27'd0;elsecnt_100ms <= cnt_100ms + 1'b1;//cnt_flag
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)cnt_flag <= 1'b0;else if(cnt_100ms == CNT_100MS_MAX - 1'b1)cnt_flag <= 1'b1;elsecnt_flag <= 1'b0;//data
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)data <= 27'd0;else if(cnt_flag == 1'b1 && data == DATA_MAX)data <= 27'd0;else if(cnt_flag == 1'b1)data <= data + 1'b1;elsedata <= data;endmodule
1.1.3 tb_data_gen.v 文件
`timescale 1ns/1ns
module tb_data_gen();reg sys_clk;
reg sys_rst_n;
wire [26:0] data;initialbegin sys_clk = 1'b0;sys_rst_n = 1'b0;#20sys_rst_n = 1'b1;endalways #10 sys_clk = ~sys_clk;data_gen
#(.CNT_100MS_MAX (27'd99_999_999),.DATA_MAX (27'd99_999_999))
data_gen_inst
(.sys_clk (sys_clk ),.sys_rst_n (sys_rst_n),.data (data )
);endmodule
1.2 点亮数码管的核心在于将十进制数不通过除法器转换为二进制,这里使用bcd_8421码
1.2.0 将十进制11转换为bcd_8421码的简单过程
转换的全程使用判断移位来完成,转换的数有几个二进制就要判断移位多少次,前面要添加 4n 个0
即十进制11 的二进制为1011,4位二进制,需要4次,添加 42 = 8个0
如果当前的数大于4,要进行 +3 再移位
1.2.1 时序图
1.2.2 bcd_8421.v文件
module bcd_8421
(input wire sys_clk ,input wire sys_rst_n ,input wire [26:0] data ,output reg [3:0] in , //个output reg [3:0] ten , //十output reg [3:0] hun , //百output reg [3:0] tho , //千output reg [3:0] ten_tho , //万output reg [3:0] hun_tho , //十万output reg [3:0] mil , //百万output reg [3:0] must //千万);reg [4:0] cnt_shift ;
reg [58:0] data_shift ;
reg shift_flag ;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)cnt_shift <= 5'd0;else if((cnt_shift == 5'd28) && (shift_flag == 1'b1))cnt_shift <= 5'd0;else if(shift_flag == 1'b1)cnt_shift <= cnt_shift + 1'b1;elsecnt_shift <= cnt_shift;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)data_shift <= 59'd0;else if(cnt_shift == 5'd0)data_shift <= {32'b0,data};else if((cnt_shift <= 5'd27) && (shift_flag == 1'b0))begindata_shift[30:27] <= (data_shift[30:27] > 4) ? (data_shift[30:27] + 2'd3) : (data_shift[30:27]);data_shift[34:31] <= (data_shift[34:31] > 4) ? (data_shift[34:31] + 2'd3) : (data_shift[34:31]);data_shift[38:35] <= (data_shift[38:35] > 4) ? (data_shift[38:35] + 2'd3) : (data_shift[38:35]);data_shift[42:39] <= (data_shift[42:39] > 4) ? (data_shift[42:39] + 2'd3) : (data_shift[42:39]);data_shift[46:43] <= (data_shift[46:43] > 4) ? (data_shift[46:43] + 2'd3) : (data_shift[46:43]);data_shift[50:47] <= (data_shift[50:47] > 4) ? (data_shift[50:47] + 2'd3) : (data_shift[50:47]);data_shift[54:51] <= (data_shift[54:51] > 4) ? (data_shift[54:51] + 2'd3) : (data_shift[54:51]);data_shift[58:55] <= (data_shift[58:55] > 4) ? (data_shift[58:55] + 2'd3) : (data_shift[58:55]);endelse if((cnt_shift <= 5'd27) && (shift_flag == 1'b1)) data_shift <= data_shift << 1;elsedata_shift <= data_shift;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)shift_flag <= 1'b0;elseshift_flag <= ~shift_flag;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)beginin <= 4'b0;ten <= 4'b0;hun <= 4'b0;tho <= 4'b0;ten_tho <= 4'b0;hun_tho <= 4'b0;mil <= 4'b0;must <= 4'b0;endelse if(cnt_shift == 5'd28)beginin <= data_shift[30:27];ten <= data_shift[34:31];hun <= data_shift[38:35];tho <= data_shift[42:39];ten_tho <= data_shift[46:43];hun_tho <= data_shift[50:47];mil <= data_shift[54:51];must <= data_shift[58:55];endendmodule
1.2.3 tb_bcd_8421.v文件
`timescale 1ns/1ns
module tb_bcd_8421();//声明变量
reg sys_clk ;
reg sys_rst_n ;
reg [26:0] data ;wire [3:0] in ;
wire [3:0] ten ;
wire [3:0] hun ;
wire [3:0] tho ;
wire [3:0] ten_tho ;
wire [3:0] hun_tho ;
wire [3:0] mil ;
wire [3:0] must ; //初始化
initialbeginsys_clk = 1'b1;sys_rst_n <= 1'b0;data <= 27'd0;#30sys_rst_n <= 1'b1;data <= 27'd12_345_678;#3000data <= 27'd87_654_321;#3000data <= 27'd98_765_432;#3000data <= 27'd99_999_999;endalways #10 sys_clk = ~sys_clk;bcd_8421 bcd_8421_inst
(.sys_clk (sys_clk ),.sys_rst_n (sys_rst_n),.data (data ),.in (in ), //个.ten (ten ), //十.hun (hun ), //百.tho (tho ), //千.ten_tho (ten_tho ), //万.hun_tho (hun_tho ), //十万.mil (mil ), //百万.must (must ) //千万
);endmodule
1.3 将bcd_8421包装为seg_dynamic
此处需要注意的问题就是数据同步,即sel信号和seg信号必须保持同步,否则会发生显示错误
1.3.1 时序图
从时序图中可以看出,seg_data 随着 cnt_sel 变化,且1ms改变一次,滞后 cnt_sel 一个周期 10ns,这里是否会因为in~must 变化太快而无法读取到准确的数值?
这里不会,原因是 data 数据变化的周期是100ms,远远大于 flag_1ms 和 cnt_sel 信号 1ms 的改变,即使 seg_data 读取一个完整的数据需要8个周期8ms,最后传到 seg 的数据也是准确的。
若是 data 数据的变化太快,小于 8ms ,此时 seg 的数据会出错;但是这种情况下,数码管显示的画面人眼是无法识别的,只能看到不停闪烁。
1.3.2 seg_dynamic.v文件
module seg_dynamic
#(parameter CNT_MAX = 17'd99_999
)
(input wire sys_clk ,input wire sys_rst_n ,input wire [26:0] data ,output reg [7:0] sel ,output reg [7:0] seg
);wire [3:0] in ;
wire [3:0] ten ;
wire [3:0] hun ;
wire [3:0] tho ;
wire [3:0] ten_tho ;
wire [3:0] hun_tho ;
wire [3:0] mil ;
wire [3:0] must ;reg [3:0] seg_data ;
reg [2:0] cnt_sel ;reg [16:0] cnt_1ms ;
reg flag_1ms ;//cnt_1ms:1ms循环计数
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)cnt_1ms <= 17'd0;else if(cnt_1ms == CNT_MAX)cnt_1ms <= 17'd0;elsecnt_1ms <= cnt_1ms + 1'b1;//flag_1ms:1ms标志信号
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)flag_1ms <= 1'b0;else if(cnt_1ms == CNT_MAX - 1'b1)flag_1ms <= 1'b1;elseflag_1ms <= 1'b0;//cnt_sel:从0到7循环数,用于选择当前显示的数码管
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)cnt_sel <= 3'd0;else if((cnt_sel == 3'd7) && (flag_1ms == 1'b1))cnt_sel <= 3'd0;else if(flag_1ms == 1'b1)cnt_sel <= cnt_sel + 1'b1;elsecnt_sel <= cnt_sel;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)seg_data <= 8'b0000_0011;elsebegincase(cnt_sel)3'd0: seg_data <= in ;3'd1: seg_data <= ten ;3'd2: seg_data <= hun ;3'd3: seg_data <= tho ;3'd4: seg_data <= ten_tho;3'd5: seg_data <= hun_tho;3'd6: seg_data <= mil ;3'd7: seg_data <= must ;endcaseendalways@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)sel <= 8'b0111_1111;else if(flag_1ms == 1'b1)begincase(cnt_sel)3'd0: sel <= 8'b1111_1110;3'd1: sel <= 8'b1111_1101;3'd2: sel <= 8'b1111_1011;3'd3: sel <= 8'b1111_0111;3'd4: sel <= 8'b1110_1111;3'd5: sel <= 8'b1101_1111;3'd6: sel <= 8'b1011_1111;3'd7: sel <= 8'b0111_1111;endcaseendalways@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)seg <= 8'b0000_0011;else if(flag_1ms == 1'b1)begincase(seg_data)4'd0: seg <= 8'b0000_0011;4'd1: seg <= 8'b1001_1111;4'd2: seg <= 8'b0010_0101;4'd3: seg <= 8'b0000_1101;4'd4: seg <= 8'b1001_1001;4'd5: seg <= 8'b0100_1001;4'd6: seg <= 8'b0100_0001;4'd7: seg <= 8'b0001_1111;4'd8: seg <= 8'b0000_0001;4'd9: seg <= 8'b0000_1001;endcaseendelseseg <= seg;bcd_8421 bcd_8421_inst
(.sys_clk (sys_clk ),.sys_rst_n (sys_rst_n),.data (data ),.in (in ), //个.ten (ten ), //十.hun (hun ), //百.tho (tho ), //千.ten_tho (ten_tho ), //万.hun_tho (hun_tho ), //十万.mil (mil ), //百万.must (must ) //千万
);endmodule
1.3.3 tb_seg_dynamic.v文件
`timescale 1ns/1ns
module tb_seg_dynamic();reg sys_clk ;
reg sys_rst_n ;
reg [26:0] data ;wire [7:0] sel ;
wire [7:0] seg ;initialbegin sys_clk = 1'b0;sys_rst_n = 1'b0;data <= 27'd0;#20sys_rst_n = 1'b1;endalways #10 sys_clk = ~sys_clk;seg_dynamic
#(.CNT_MAX(17'd99_999)
)
seg_dynamic_inst
(.sys_clk (sys_clk ),.sys_rst_n (sys_rst_n),.data (data ),.sel (sel ),.seg (seg )
);endmodule
1.3.4 sel信号和seg信号不同步的问题
always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)sel <= 8'b0111_1111;else if(flag_1ms == 1'b1)begincase(cnt_sel)3'd0: sel <= 8'b1111_1110;3'd1: sel <= 8'b1111_1101;3'd2: sel <= 8'b1111_1011;3'd3: sel <= 8'b1111_0111;3'd4: sel <= 8'b1110_1111;3'd5: sel <= 8'b1101_1111;3'd6: sel <= 8'b1011_1111;3'd7: sel <= 8'b0111_1111;endcaseend
当此处语句缺少
if(flag_1ms == 1’b1)
会产生不同步,时序图会发生下面的变化,数码管会从第二位开始显示,第一位保持为0,发生显示错误
1.4 将seg_dynamic和data_gen包装为top_seg_dynamic
1.4.1 top_seg_dynamic文件
module top_seg_dynamic
(input wire sys_clk ,input wire sys_rst_n ,output wire [7:0] sel ,output wire [7:0] seg
);wire [26:0] data ;data_gen
#(.CNT_100MS_MAX (27'd99_999_999),.DATA_MAX (27'd99_999_999))
data_gen_inst
(.sys_clk (sys_clk ),.sys_rst_n (sys_rst_n),.data (data )
);seg_dynamic
#(.CNT_MAX(17'd99_999)
)
seg_dynamic_inst
(.sys_clk (sys_clk ),.sys_rst_n (sys_rst_n),.data (data ),.sel (sel ),.seg (seg )
);endmodule
1.4.2 tb_top_seg_dynamic文件
`timescale 1ns/1ns
module tb_top_seg_dynamic();reg sys_clk;
reg sys_rst_n;wire [7:0] sel;
wire [7:0] seg;//初始化
initialbeginsys_clk = 1'b0;sys_rst_n <= 1'b0;#30sys_rst_n <= 1'b1;endalways #10 sys_clk = ~sys_clk;//defparam top_seg_dynamic_inst.seg_dynamic_inst.CNT_MAX = 20'd5;
//defparam top_seg_dynamic_inst.data_gen_inst.CNT_MAX = 20'd5;top_seg_dynamic top_seg_dynamic_inst
(.sys_clk (sys_clk),.sys_rst_n (sys_rst_n),.sel (sel),.seg (seg)
);
endmodule
2. NEXYS4_DDR迪芝伦XC7A100TCSG324-1型的原理图与管脚绑定
2.1相关原理图
数码管原理图
8个8位数码管,从左到右,且为共阳极数码管,即端口为低电平时点亮
片选信号为低电平时数码管亮
sel | U13 | K2 | T14 | P14 | J14 | T9 | J18 | J17 |
---|---|---|---|---|---|---|---|---|
片选 | AN7 | AN6 | AN5 | AN4 | AN3 | AN2 | AN1 | AN0 |
数码管的显示示意图
共阳极,低电平时点亮
T10 | R10 | K16 | K13 | P15 | T11 | L18 | H15 | ||
---|---|---|---|---|---|---|---|---|---|
seg | a | b | c | d | e | f | g | dp | 0h |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 03 |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 9F |
2 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 25 |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0D |
4 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 99 |
5 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 49 |
6 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 41 |
7 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1F |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 01 |
9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 09 |
A | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 11 |
B | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | C1 |
C | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 63 |
D | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 85 |
E | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 61 |
F | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 71 |
2.2 seg_dynamic.xdc文件
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports sys_rst_n]set_property IOSTANDARD LVCMOS33 [get_ports {seg[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {sel[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sel[0]}]set_property PACKAGE_PIN E3 [get_ports sys_clk]
set_property PACKAGE_PIN J15 [get_ports sys_rst_n]set_property PACKAGE_PIN J17 [get_ports {sel[0]}]
set_property PACKAGE_PIN J18 [get_ports {sel[1]}]
set_property PACKAGE_PIN T9 [get_ports {sel[2]}]
set_property PACKAGE_PIN J14 [get_ports {sel[3]}]
set_property PACKAGE_PIN P14 [get_ports {sel[4]}]
set_property PACKAGE_PIN T14 [get_ports {sel[5]}]
set_property PACKAGE_PIN K2 [get_ports {sel[6]}]
set_property PACKAGE_PIN U13 [get_ports {sel[7]}]set_property PACKAGE_PIN H15 [get_ports {seg[0]}]
set_property PACKAGE_PIN L18 [get_ports {seg[1]}]
set_property PACKAGE_PIN T11 [get_ports {seg[2]}]
set_property PACKAGE_PIN P15 [get_ports {seg[3]}]
set_property PACKAGE_PIN K13 [get_ports {seg[4]}]
set_property PACKAGE_PIN K16 [get_ports {seg[5]}]
set_property PACKAGE_PIN R10 [get_ports {seg[6]}]
set_property PACKAGE_PIN T10 [get_ports {seg[7]}]
NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,点亮板载的8个8位数码管相关推荐
- NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,VGA接口显示彩条
vga彩条显示,640*480模式可以显示1600*900 1. VGA显示 1.1 VGA的端口定义 1.2 VGA的显示时序 1.3 像素点与时序 1.4 此处选择DELL_E2016HV型显示器 ...
- NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,ADT7420测温
ADT7420测温 0. 未理解的点 1. ADT7420简介 1.1 特性 1.2 引脚配置与原理图 1.3 寄存器 1.4 读写等操作时序 1.4.1 写单字节数据 1.4.2 写双字节数据 1. ...
- MATLAB加入螺旋相位板调制,连续型螺旋相位板设计方法与流程
本发明涉及光学元件设计,尤其是螺旋相位板设计,属于光学技术领域. 背景技术: 目前,螺旋相位板是一种厚度与旋转方位角成正比的透明玻璃板,它可以将高功率平面光束转化为带有轨道角动量的涡旋光束,这种高功率 ...
- Opengl-模型(告别箱子加载模型)
先放一个效果图 关于模型加载 一个非常流行的模型导入库是Assimp,它是Open Asset Import Library(开放的资产导入库)的缩写.Assimp能够导入很多种不同的模型文件格式(并 ...
- cpci计算机无法启动,CPCI军用坚固型特种计算机产品与解决方案 .pptx
研祥CPCI军用坚固型特种计算机产品与解决方案;内容纲要;PICMG 2.0;组建了大陆最强大的CPCI产品研发队伍,可提供国内最完善.最齐全的CPCI加固产品解决方案.应用于多个行业:军工.通讯.轨 ...
- FPGA - 基于FPGA的HDMI显示
写在前面 HDMI接口很早之前就想调试了,由于没有时间,就拖到了现在,而且毕业设计也是和视频处理系统有关,就趁这个机会把这个接口调试下. 开发环境 vivado 18.3 pynq - z2 HDMI ...
- 【PYNQ】PYNQ的视频资料介绍
<这个是之前B站的粉丝说想看> 板卡购买: Digilent(迪芝伦)PYNQ 目录 微信公众号:PYNQ开源社区 百度/CSDN博客 Bilibili GitHub/ Gitee(开源项 ...
- 基于FPGA的HDMI显示(二)
基于FPGA的720P HDMI显示 1.4.1 HDMI 硬件电路分析 本次设计采用了 IO 模拟的方式实现 HDMI 的功能.与采用专用 HDMI 芯片相比,此方案具有成本更低.效果不输于采用 ...
- FPGA接口-PMOD,FMC与SYZYGY
现代FPGA 功能强大,它通过芯片的可编程引脚与外围电路相连.比如AD/DA,数字IO以及以太网,USB,CAN ,视频I/O 等接口电路.人们将这些接口称为夹层模块(Mezzanine Module ...
最新文章
- vue组件级路由钩子函数介绍,及实际应用
- Flink Operator之CoGroup、Join以及Connect
- win8下cocos2dx3.2移植android平台及代码打包APK
- 简单图形打印(需求分解)
- aes加密 java_Android逆向中记算法识别(aes、tea、md5)
- GB-T 16260.1-2006 软件工程 产品质量
- iOS开发--一步步教你彻底学会『iOS应用间相互跳转』
- IT技术 VS IT管理!为什么国内大公司都看不起搞技术的?
- Android开发笔记(成长轨迹)
- php支持微信h5支付,PHP接入微信H5支付的方法示例
- 制冷行业人人必备的设计与仿真软件大全!(附下载)
- 别让你的项目,毁在单片机选型上
- 适合儿童学习的编程语言一览
- axure能做剪切蒙版吗_***自动售货机能做吗
- Context上下文到底是个什么东东?
- 坎坷的微信小程序【笔记】
- i5 11400f和i5 11400区别?哪个好?深度爆料评测
- java递归1加到10,递归1-初识递归
- 在Excel中给不足位数的数字前面补0
- Confluence迁移中遇到的问题(Data too long for column #39;STRINGVAL#39;)及解决方法
热门文章
- Video process: 视频剪辑和格式转换 (windows)
- 62.根据系统进程快照获得枚举系统进程PROCESSENTRY32、CreateToolhelp32Snapshot、Process32First、Process32Next
- nasm assembly 语法
- CentOS下网页百度网盘下载资料
- 【布谷鸟来客提醒V4.0 官方版】淘宝店铺监控软件
- js在线scss转css的方法
- 团体队列(Team Queue,UVA 540)
- 基于docker的hadoop集群搭建
- MySQL数据库基础——基本操作
- 牛刀:2011年房价下跌20%只是臆想