Menu Close

复杂数字钟设计(7)–模块组装及硬件调试(PRX100-D)

经过前面几个步骤的分析与设计,目前对于各个模块的抽象,封装以及各个模块之间接口与功能的划分已经非常清晰,把修改后的功能框图以及顶层的源代码重新呈现给大家。根据这两部分内容并结合PRX100-D硬件原理图组织硬件实验与调试。

digital clock verilog code structure

 

图1

 

1.模块组装

在Vivado下新建工程见文章Vivado软件的使用 。移植复杂数字钟工程到Vivado需要注意以下几点:

  • 仔细阅读硬件原理图,正确分配管脚,写入到*.xdc文件中。(PRA006和PRX100-D上按键的逻辑正好相反,详细见下图3。)
  • 注意电平的兼容性
  • IP核需要重新生成及例化


 

2.开发板FII-PRX100-D资源的使用

    • 数码管,如图2

PRX100-D segment schematic

图2

  • 按键资源

PRX100-D button schematics

图3

  • 资源与FPGA管脚映射,如表1,
顶层module信号名 网络标号 FPGA管脚 开发板上的标识 FPGA管脚电平瞄准 端口说明
inclk C10_50MCLK D18 LVCMOS33 输入时钟
sw_in_p KEY2 L4 PB0 LVCMOS33 按键(+)
sw_in_m KEY7 R7 PB3 LVCMOS33 按键(-)
sw_in_l KEY4 K5 PB1 LVCMOS33 按键左移
sw_in_r KEY6 P1 PB2 LVCMOS33 按键右移
SEAT[5] SEG_3V3_D5 R16 LVCMOS33 位选信号第5位
SEAT[4] SEG_3V3_D4 R17 LVCMOS33 位选信号第4位
SEAT[3] SEG_3V3_D3 N18 LVCMOS33 位选信号第3位
SEAT[2] SEG_3V3_D2 K25 LVCMOS33 位选信号第2位
SEAT[1] SEG_3V3_D1 R25 LVCMOS33 位选信号第1位
SEAT[0] SEG_3V3_D0 P21 LVCMOS33 位选信号第0位
SEVEN_SEG[6] SEG_PG P23 LVCMOS33 段选信号第7位
SEVEN_SEG[5] SEG_PF T24 LVCMOS33 段选信号第6位
SEVEN_SEG[4] SEG_PE N22 LVCMOS33 段选信号第5位
SEVEN_SEG[3] SEG_PD N21 LVCMOS33 段选信号第4位
SEVEN_SEG[2] SEG_PC L20 LVCMOS33 段选信号第3位
SEVEN_SEG[1] SEG_PB M20 LVCMOS33 段选信号第2位
SEVEN_SEG[0] SEG_PA K26 LVCMOS33 段选信号第1位
DP SEG_DP P24 LVCMOS33 小数点
  • 在工程中锁定管脚

Vivado的管脚约束文件如下:

  • 重新编译complex_counter 工程并下载,调试。

 

扩展设计:

  1.  添加年份计数及显示。
  2. 添加闰年计算,调整2月的天数。
  3. 添加蜂鸣器,实现整点报时(PRX100-D),蜂鸣器的使用请参照蜂鸣器实验。
Posted in FPGA, FPGA 教材教案, Verilog, 教材与教案, 文章