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]