程式碼下載
頂級文件:
七段顯示器 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 到七段映射:bcd_to_7seg_display.vhd (2.0 KB)
特點
- Digilent 七段顯示器 Pmod (PmodSSD) 精簡介面的 VHDL 原始碼
- 在兩個七段顯示器上顯示 2 位元數字
- 不顯示前數值零
- 處理 Pmod 上兩個顯示器共享輸入引腳之間的多工
- 可設定系統時脈頻率
介紹
這詳細介紹了用於處理與 Digilent 的 SSD Pmod 介面的 VHDL 元件,如圖 1 所示。圖 2 說明了此 SSD Pmod 控制器整合到系統中的典型範例。如圖所示,SSD Pmod 控制器透過 FPGA 的輸出埠直接連接到 SSD Pmod。它從使用者邏輯輸入一個數字,並輸出必要的訊號以在 Pmod 的七 段顯示器上顯示該數字。該組件是使用 Vivado 2017.2 設計的。
圖 2. 範例實現
背景
SSD Pmod 使用共享數據線與兩個七段顯示器交互,其中一組標準 a-g 數據線直接連接到兩個 SSD。 SSD 採用共陰極配置。共陰極連接充當「數字選擇」。此輸入在 SSD 之間倒置,以便當另一個數字的陰極設定為低(啟用它)時,每個數字的陰極都設定為高(有效將其關閉)。
工作原理
SSD Pmod 控制器輸入一個 2 位元整數,確定表示它所需的 SSD 段值,然後在 SSD Pmod 的共用輸入上將這些值多工。圖 3 說明了此過程中的操作。
圖 3. 執行的操作
判斷 SSD 段值
SSD Pmod 控制器使用了另一文章「7-Segment Display Driver for Multiple Digits (VHDL)」提供的多位元七段顯示磁碟機元件來取得輸入整數並判斷 SSD Pmod 上每個 SSD 所需的段值。此元件的工作原理是首先將整數輸入轉換為標準邏輯向量,以獲得整數的二進位表示。它使用二進位到 BCD 轉換器元件將該二進制數轉換為二進位編碼的十進位(BCD)。如果結果 BCD 數字以零開頭,則將停用。最後,它將 BCD 值對應到 SSD 段值。
在實例化多位七段顯示驅動器組件時,有三個通用參數對其進行配置。對於此設計,數字設定為 2,因為 SSD Pmod 有兩個 SSD 需要控制。位元設定為 7,因為 3.322 x 數字 = 6.644,所以向上舍入為 7。最後,ss_polarity 設定為「1」,因為 SSD Pmod 的七段顯示器採用共陰極排列。
多工 SSD 段值
由於 SSD Pmod 的兩個 SSD 具有共享輸入引腳,因此 SSD Pmod 控制器必須多工兩個 SSD 值集。它每 5ms 交替輸出兩個 SSD 值集。這相當於 100Hz 的刷新率,足夠快以實現視覺暫留,因此看起來兩個 SSD 都同時亮起。
配置時鐘
此 SSD Pmod 控制器的時脈是透過為 ENTITY 中定義的 GENERIC clk 指派一個值來配置的。這是所提供的系統時脈的頻率(以 MHz 為單位)。
連接埠說明
表 1 描述了 SSD Pmod 控制器的連接埠。
表 1. 連接埠說明
連接
這個 Pmod 有兩個 6 針連接器。表 2 提供了這些連接器的引腳排列。SSD Pmod 控制器的連接埠需要分配給路由至這些連接器的 FPGA 引腳,如所列。
表 2. SSD Pmod 引腳分配和與 SSD Pmod 控制器的連接
重置
為了使 SSD Pmod 控制器組件能夠運行,reset_n 輸入連接埠必須具有邏輯高電平。此連接埠上的低邏輯電平非同步重置該元件。在重設期間,元件會清除 digit_select 和分段輸出。一旦重置完畢,SSD Pmod 控制器將恢復運作。
結論
此 SSD Pmod 控制器是可程式邏輯元件,可與 Digilent 的七段顯示器 (SSD) Pmod 介接。它處理在 Pmod 的 SSD 上顯示 2 位元整數所需的所有過程。
相關主題
7-Segment Display Driver for Multiple Digits (VHDL)
Binary to BCD Converter (VHDL)