fpga项目: 移植野火的数码管显示 - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki
需要修改的点
- 我们的数码管与野火的极性相反,我们的数码管sel为1表示灭,为0表示亮。因此我们的数码管需要初始化为sel[3:0]=4'b1111,然后从4'b1110开始shift。
- 野火程序需要修改的地方:
例化方式
seg_dynamic
//#(.CNT_MAX(500))
seg_dynamic_inst
(
.sys_clk (clk ),
.sys_rst_n (rst_n ),
.data (po_rd_data ),
.point ( ),
.seg_en (1'b1 ),
.sign ( ),
.sel (sel ),
.seg (seg )
);
引脚定义
- 我们的数码管,sel[0]是最左边的,sel[3]是最右边的。因此引脚定义顺序要反过来。
对于TangNano 20k(时钟取si5351时钟50MHz,sys_rst_n取扩展板的按键)
IO_LOC "sys_clk" 10;
IO_LOC "sys_rst_n" 52;
IO_PORT "sys_rst_n" PULL_MODE=UP
IO_LOC "sel[3]" 76;
IO_LOC "sel[2]" 80;
IO_LOC "sel[1]" 42;
IO_LOC "sel[0]" 41;
IO_LOC "seg[0]" 56;
IO_LOC "seg[1]" 54;
IO_LOC "seg[2]" 51;
IO_LOC "seg[3]" 48;
IO_LOC "seg[4]" 55;
IO_LOC "seg[5]" 49;
IO_LOC "seg[6]" 86;
IO_LOC "seg[7]" 79;
对于Z7-Nano
create_clock -period 20.000 [get_ports sys_clk]
set_property -dict {PACKAGE_PIN N18 IOSTANDARD LVCMOS33} [get_ports sys_clk]
set_property -dict {PACKAGE_PIN P14 IOSTANDARD LVCMOS33} [get_ports sys_rst_n]
set_property -dict {PACKAGE_PIN F17 IOSTANDARD LVCMOS33} [get_ports {sel[3]}]
set_property -dict {PACKAGE_PIN D18 IOSTANDARD LVCMOS33} [get_ports {sel[2]}]
set_property -dict {PACKAGE_PIN E19 IOSTANDARD LVCMOS33} [get_ports {sel[1]}]
set_property -dict {PACKAGE_PIN G18 IOSTANDARD LVCMOS33} [get_ports {sel[0]}]
set_property -dict {PACKAGE_PIN H17 IOSTANDARD LVCMOS33} [get_ports {seg[0]}]
set_property -dict {PACKAGE_PIN A20 IOSTANDARD LVCMOS33} [get_ports {seg[1]}]
set_property -dict {PACKAGE_PIN B20 IOSTANDARD LVCMOS33} [get_ports {seg[2]}]
set_property -dict {PACKAGE_PIN D20 IOSTANDARD LVCMOS33} [get_ports {seg[3]}]
set_property -dict {PACKAGE_PIN H18 IOSTANDARD LVCMOS33} [get_ports {seg[4]}]
set_property -dict {PACKAGE_PIN F20 IOSTANDARD LVCMOS33} [get_ports {seg[5]}]
set_property -dict {PACKAGE_PIN G20 IOSTANDARD LVCMOS33} [get_ports {seg[6]}]
set_property -dict {PACKAGE_PIN H20 IOSTANDARD LVCMOS33} [get_ports {seg[7]}]
set_property -dict {PACKAGE_PIN J19 IOSTANDARD LVCMOS33} [get_ports {sel[5]}]
set_property -dict {PACKAGE_PIN L16 IOSTANDARD LVCMOS33} [get_ports {sel[4]}]
#set_property -dict {PACKAGE_PIN L19 IOSTANDARD LVCMOS33 PULLUP true } [get_ports key1]
#set_property -dict {PACKAGE_PIN L20 IOSTANDARD LVCMOS33 PULLUP true} [get_ports key2]