天天燥日日燥_国产精品毛片一区二区在线_无遮挡肉动漫,国内精品一级毛片,精品视频久久久久,色77av

成為擁有核心技術的半導體元器件供應商和解決方案商
電話咨詢(微信同號): +86 18926567115

新聞資訊

知識專欄

如何利用單片機復合邏輯塊實現高效離散邏輯?

作者: 浮思特科技2024-12-04 14:13:09

  在嵌入式系統中,許多應用常常使用離散邏輯器件,例如74'HC系列。這些邏輯器件的優點在于它們可以獨立于微控制器(MCU)工作,并且響應速度比軟件快得多。然而,這些器件會增加材料清單(BOM),并且需要額外的PCB面積。

  為了解決這個問題,許多微芯科技的微控制器在PIC MCU上集成了一種名為可配置邏輯單元(Configurable Logic Cell, CLC)的外設,或在AVR MCU上集成了一種類似的外設,稱為可配置自定義邏輯(Configurable Custom Logic, CCL)。這兩種外設都實現了軟件定義的自定義邏輯,可以獨立于CPU執行。換句話說,一旦自定義邏輯功能設置完成,其行為就不再依賴于微控制器。

  這些外設為開發簡單的邏輯電路、混合信號以及與其他硬件外設集成提供了有用的工具。但這些外設的一個局限性是每個實例的邏輯量非常小。每個CLC大約相當于一個查找表(LUT),而CCL則是一個內部有幾個獨立LUT的實例。

  引入可配置邏輯塊

  為了支持更復雜的應用,開發了一種新型邏輯外設——可配置邏輯塊(Configurable Logic Block, CLB),如圖1所示。它首次出現在PIC16F13145系列微控制器中。

微控制器

圖1

  需要注意的是,CLB并不一定取代CLC或CCL外設。微控制器可以同時擁有CLC/CCL和CLB。

  PIC16F13145系列的CLB由四組邏輯組組成,每組包含八個基本邏輯單元(BaSIC Logic Element, BLE)。各邏輯組之間是相互連接的,每個邏輯組代表兩個GPIO輸出和一個可選的CPU中斷。

  CLB中的其他元素包括:

  一個具有解碼輸出的專用3位硬件定時器

  輸入信號的邊沿檢測器

  一個用于調試的32位輸出寄存器

  此外,微控制器上的其他核心獨立外設輸出可以用作CLB的輸入,以實現更復雜的設計。

  CLB從微控制器的內存中初始化,并能夠通過外設引腳選擇(Peripheral Pin Select, PPS)直接控制引腳。PPS允許用戶重新分配與硬件外設使用的I/O引腳,以獲得更大的設計靈活性。例如,如果RA1用于SPI時鐘而RA6更為合適,則可以通過PPS重新映射該引腳。

  所有BLE在整個電路中共享一個通用時鐘,其源在軟件中配置,并可選配一個時鐘分頻器。CLB可以使用來自微控制器的內部時鐘源或外部提供的源。當在5.5V下運行時,BLE的典型傳播時間小于6納秒。

  CLB合成

  由于CLB的復雜性遠高于CLC或CCL,開發了一種名為CLB合成器的工具。CLB合成器提供了一個圖形界面來配置邏輯,如圖2所示。

微控制器

圖2

  除了邏輯原語,合成器還支持更高級邏輯塊的庫,這些庫可以是預先提供的或由用戶自定義構建的。

  在與圖形工具交互時,會在后臺生成一個用于合成的Verilog模塊。如果開發人員希望編寫自己的Verilog或已有文件,可以將該文件直接作為模塊導入到工具中。

  CLB合成器的輸出是一個包含設置CLB的位流的匯編文件,以及一些用于將CLB配置為外設的源代碼。該工具可以通過MPLAB代碼配置器(MCC)或獨立的在線工具運行。MCC是一個代碼生成工具,允許用戶使用可視化界面設置和配置微控制器中的外設。在配置硬件外設后,MCC生成初始化代碼和設備API。

  在運行時,CLB位流直接從程序內存中加載,使用板載硬件。這種實施方式使程序能夠在運行時更改CLB的配置。加載過程可以重復進行,使用存儲在設備內存中的不同位流。

  使用CLB的設計示例

  為了演示CLB的應用,我們將討論兩個示例:

  七段顯示器轉換器

  SPI到WS2812串行數據轉換器

  這些用例示例是可以復制并用作完整解決方案的一部分的構建模塊,旨在展示CLB在設計中的實用性。

  七段顯示器轉換器

  七段顯示器可以由常規的I/O引腳驅動。標準實現通常需要一個軟件定義的查找表,將輸入數字轉換為顯示器的正確輸出模式。

  在這個實現中,CLB作為硬件查找表工作。所需的輸出字符(0到F)從軟件加載到CLB輸入寄存器中。顯示器的每個輸出段由一個LUT控制,該LUT將輸入映射到輸出。

  這一用例示例曾在內部用于構建一個新的計時系統控制板。原始用戶界面是在1980年代使用74'HC系列邏輯開發的。通過使用CLB升級設計,單個20引腳的微控制器可以實現顯示和鍵盤邏輯。

  如圖3所示,這大大減少了材料清單(BOM)。頂部的原始電路板比底部的新設計包含更多組件,后者使用了帶有CLB的MCU。

MCU

圖3

  SPI到WS2812串行數據轉換器

  WS2812是一種用于控制LED陣列的1線串行協議,采用脈寬調制。在這種情況下,SPI硬件被用作要發送到LED的數據的移位寄存器,而CLB將SCLK和SDO轉換為預期的輸出。

  如圖4所示,這一實現使用了一個單觸發的3位計數器、一個帶使能的D觸發器和一個4輸入的LUT。

MCU

圖4

  這一實現的關鍵在于SPI和CLB的時鐘源。SPI時鐘設置為空閑高電平,在上升沿變換狀態,并以800 kHz的WS2812輸出頻率運行。CLB的8 MHz時鐘源是10倍更快的。

  當SCLK為低時,3位計數器被觸發并開始計數。當計數器達到7(0b111)時,它停止并保持在0,直到下一個時鐘脈沖的低周期。

  計數器的輸出與鎖存版本的輸出數據一起饋入4輸入的LUT。這設置了數據的輸出模式,如圖4右側所示。在計數器重置后,計數器輸出將保持在0以完成周期。然后,如果需要,SPI硬件中的下一個字節將被傳輸,重復這一周期。

  可配置邏輯塊的優點

  這兩個示例展示了微控制器內部離散邏輯的優勢。硬件外設將任務卸載給CPU,從而改善響應時間和功耗,同時減少部件數量。CLB使得開發以前無法在微控制器內部實現的復雜應用成為可能。目前,CLB可以在PIC16F13145系列微控制器上找到,用戶可以通過Microchip Direct或其他電子分銷商直接獲取。

浮思特科技專注功率器件領域,為客戶提供IGBTIPM模塊等功率器件以及MCU和觸控芯片,是一家擁有核心技術的電子元器件供應商和解決方案商。