7段数码管Pmod控制器(VHDL)

逻辑主页

代码下载

顶层文件:
7段数码管Pmod控制器: pmod_seven_segments.vhd (4.4 KB)

项目中必须包含的其他文件:
多位数码管显示驱动: seven_segments.vhd (5.0 KB)
二进制转BCD码转换器: binary_to_bcd.vhd (5.8 KB)
二进制转BCD数字转换器: binary_to_bcd_digit.vhd (3.2 KB)
BCD码到7段数码管映射: [bcd_to_7seg_display.vhd|attachment](upload://n1MkbGY1FiRf4NBgd

特点

  • 用于简化Digilent7段数码管Pmod(PmodSSD)接口的VHDL源代码
  • 在两个7段数码管上显示2位整数
  • 不显示前导零
  • 处理Pmod上两个显示器共享输入引脚间的多路复用
  • 可配置系统时钟频率

介绍

本文详述了用于连接Digilent SSD Pmod的VHDL组件,如图1所示。图2展示了该SSD Pmod控制器集成到系统中的典型示例。如图所示,SSD Pmod控制器通过FPGA输出端口直接连接至SSD Pmod。它从用户逻辑输入数字,并输出必要信号以在Pmod的7段数码管上显示该数字。该组件使用Vivado 2017.2设计。

1. Digilent SSD Pmod模块

2. 实现示例

背景

SSD Pmod采用共享数据线与两个7段数码管连接,一组标准a-g数据线直接连接两个SSD。SSD采用共阴极配置。共阴极连接充当"数字选择"功能。该输入在SSD间反向连接,因此当其中一个数码管的阴极设为低电平(启用)时,另一个数码管的阴极设为高电平(关闭)。

操作原理

SSD Pmod控制器输入2位整数,确定其所需的SSD段码值,然后在SSD Pmod的共享输入上多路复用这些值。图2展示了此流程中的操作。

2. 执行操作

确定 SSD 段码值

SSD Pmod控制器使用eewiki上的7段多位数码管显示驱动组件,获取输入整数并确定SSD Pmod上各数码管所需的段码值。该组件首先将输入的整数转换为标准逻辑向量,以获取该整数的二进制表示形式。随后通过二进制转BCD转换器组件,将此二进制数转换为二进制编码的十进制数(BCD)。生成的BCD数字若为前导零则会被禁用。最后将BCD值映射到7段数码管(SSD)的段选值。

实例化多位数7段数码管显示驱动组件时,需通过三个通用参数进行配置。本设计中,digits 参数设为2(因SSD Pmod需控制两个数码管),bits 参数设为7(依据公式3.322×位数 =6.644,向上取整为7,计算原理参见此处)。ss_polarity 参数设为 ‘1’ 因该SSD Pmod采用共阴极接法。

SSD 段选值复用

由于SSD Pmod的两个数码管共享输入引脚,控制器必须对两组SSD值进行复用。每5毫秒轮换输出两组SSD值。对应100Hz刷新率,利用视觉暂留效应实现两个数码管同时点亮的显示效果。

时钟配置

通过ENTITY中定义的GENERIC clk参数配置SSD Pmod控制器的时钟频率。该参数表示系统时钟频率(单位MHz)。

端口描述

表1描述SSD Pmod控制器的端口定义。

1. 端口描述

连接方式

该Pmod配备两个6针连接器。表2提供连接器引脚定义。需按清单将SSD Pmod控制器端口分配至FPGA连接器对应引脚。

2. SSD Pmod引脚定义与控制器连接

复位

reset_n 输入端口需保持逻辑高电平才能使控制器正常工作。该端口的低电平将异步复位组件。复位期间,组件将清除digit_selectsegments 输出。复位解除后控制器恢复运行。

结论

本SSD Pmod控制器是可编程逻辑组件,用于连接Digilent7段数码管Pmod。可完成在Pmod数码管上显示2位整数所需的所有处理流程。

相关主题

多位数7段数码管驱动电路(VHDL实现)

二进制转BCD转换器(VHDL)