用單片機實現可編程邏輯器件的配置

2021-01-19 電子產品世界

基於單片機的複雜可編程邏輯器件快速配置方法

本文引用地址:http://www.eepw.com.cn/article/171835.htm

基於SRAM(靜態隨機存儲器)的可重配置PLD(可編程邏輯器件)的出現,為系統設計者動態改變運行電路中PLD的邏輯功能創造了條件。PLD使用SRAM單元來保存配置數據。這些配置數據決定了PLD內部的互連關係和邏輯功能,改變這些數據,也就改變了器件的邏輯功能。由於SRAM的數據是易失的,因此這些數據必須保存在PLD器件以外的EPROM、EEPROM或FLASH ROM等非易失存儲器內,以便使系統在適當的時候將其下載到PLD的SRAM單元中,從而實現在電路可重配置ICR(In-Circuit Reconfigurability)。

本文介紹筆者設計的PLD ICR控制電路,它不但線路結構簡潔、開發容易、體積小、成本低,並且在圖2介紹的ICR控制電路中,其存儲PLD配置數據的FLASH存儲器採用並行總線,交換速度較快。然而PLD配置數據較大,通常都在數十千字節以上。如何提高圖2介紹的ICR控制電路的配置速度,使系統上電後的最短的時間內完成配置而進入正常工作狀態,軟體設計上的一個重點。

1 基於SRAM的可重配置CPLD的結構與原理

早期的可編程邏輯器件大多採用紫外線可擦除只讀存儲器(EPROM)和電可擦除只讀存儲器(EEPROM)方式。如GAL系列、EPF7064、EPF7128等。由於其結構簡單、規模小,只能完成簡單數字邏輯功能。此後,出現了一類結構上稍複雜的基於SRAM存儲器的可編程晶片,即複雜可編程邏輯器件(CPLD),它能完成各種數字邏輯功能。

採用這些結構的可編程邏輯器件有ALTERA公司的FLEX、ACEX、APEX系列,XILINX公司的Spartan、Virtex系列。多年來,ALTERA公司一直致力於CPLD的開發。近幾年,該公司又推出了很有競爭力的CPLD器件,即靈活的邏輯單元陣列的FLEX(Flexible Logic Element Matrix)系列產品。相對於其它一些廠家的FPGA產品來說,ALTERA公司的FLEX系列產品有其獨特之處。這主要表現在高密度、在線配置功能、高速度和連續式布線結構等方面。

查找表LUT(Look-Up-Table)是基於SRAM的可重配置PLD的一個重要組成部分,LUT本質上就是一個RAM。目前CPLD中多使用4輸入的LUT,所以每一個LUT可以看成個有4位地址線的16×1bit的RAM。當用戶通過GDF原理圖或VHDL語言描述了一個邏輯電路後,CPLD開發軟體會自動計算邏輯電路的所有可能結果,並把結果事先存入查找表。這樣,當多信信號進行邏輯運算時就等於輸入一個地址進行查表,找出地址所對應的內容,然後將其輸出即可。

2 可編程邏輯器件的配置原理

首先在開發軟體MAX+PLUS II的ASSIGN菜單下選擇將要採用的基於SRAM的器件名稱。經過編譯、優化、邏輯綜合、仿真等步驟達到設計要求後,軟體會自動產生一個編程文件(擴展名為.SOF文件)。對於基於SRAM工藝的可編程邏輯器件(如ALTERA的所有FLEX、ACEX、APEX系列,XILINX的Sparten、Vertex系列),由於SRAM存儲器的特點,掉電後數據會消失,因此在調試期間可以採用並口ByteblasteMV下載電纜多次重複配置PLD器件。當電路設計成功,調試完成後,需要將配置數據燒寫固化在一個由ALTERA生產的專用EEPROM(如EPC1441)中。上電時,由這片配置EEPROM先對PLD加載數據,幾十毫秒後,PLD即可正常工作。

CPLD器件的工作狀態分為三種:首先是上電配置狀態(Configuration Mode),將編程的數據裝入CPLD器件的過程,也可稱之為構造;然後是初始化狀態(Initialization Mode),在配置完成後,CPLD器件復位內部各類寄存器,讓I/O引腳為邏輯器件正常工作做準備;最後是用戶狀態(User Mode),指電路中CPLD器件正常工作時的狀態。

ALTERA公司具有ICR功能的PLD器件有FLEX8000、FLEX10K、APEX和ACEX系列,它們的配置方式可分為PS、PPS和JTAG(Joint Test Action Group)等方式。PS方式因PLD與配置電路的互連最簡單,對配置時鐘的最小頻率沒有限制而應用最廣泛,因此在ICR控制電路中通常採用PS配置方式來實現ICR功能。

被動串行(PS)配置方式:在該配置方式下,由ByteblasteMV下載電纜產生一個由低到高的跳變送到nCONFIG引腳腳復位PLD,然後將配置數據送到DATA0引腳,直到CONF_DONE引腳變為高電平。圖1是PS配置方式的時序圖。CONF_DONE變成高電平後,DCLK必須多餘十個周期來初始化該器件。器件的初始化由下載電纜自動執行。在PS方式中沒有握手信號,所以配置時鐘的工作頻率必須低於10MHz。在多器件PS配置方式中,第一片PLD的nCEO引腳級聯到下一片PLD的nCE引腳。在配置完第一個器件後,nCEO輸出為低,使第二個PLD器件的nCE有效,開始對第二塊器件進行配置。


相關焦點

  • 基於51單片機和可編程邏輯器件實現LED顯示屏
    控制系統負責接收、轉換和處理各種外部信號,並實現掃描控制,然後驅動LED點陣顯示需要的文字或圖案。控制系統作為LED顯示屏的核心部分,直接決定了顯示屏的顯示效果和性能的優劣。本文詳細分析採用Verilog HDL對ATF1508AS進行編程,實現雙口RAM訪問和產生LED點陣驅動電路所需的各種時序信號。
  • 可編程邏輯器件
    可編程邏輯器件(Programmable Logic Device,PLD)是一種半定製集成電路,在其內部集成了大量的門和觸發器等基本邏輯單元電路(LEs),用戶通過編程來改變PLD內部電路的邏輯關係或連線,就可以得到所需要的設計電路。可編程邏輯器件的出現,改變了傳統的數字系統設計方法,其設計方法為採用EDA技術開創了廣闊的發展空間,並極大地提高了電路設計的效率。
  • 可編程邏輯器件及應用
    可編程邏輯器件及應用10.1 概述10.1.1 PLD器件的基本結構10.1.2 PLD器件的分類10.1.3 PLD器件的優點一、縮短設計周期,降低設計風險二、高可靠性和可加密性三、降低了產品生產的總費
  • 基於可編程邏輯器件和VHDL語言實現算術邏輯單元的設計
    打開APP 基於可編程邏輯器件和VHDL語言實現算術邏輯單元的設計 宋澤明,陳文楷 發表於 2021-01-04 10:36:00
  • 可編程邏輯器件和ASIC對比介紹
    1.1 可編程邏輯器件 可編程邏輯器件PLD(Programmable Logic Device)就是一種可以由用戶定義和設置邏輯功能的數字集成電路,屬於可編程 ASIC。PLD的種類較多,目前廣泛使用的PLD器件主要是複雜可編程邏輯器件CPLD(Complex Programmable Logic Device)和現場可編程門陣列FPGA(Field Programmable Gate Array) 。 CPLD器件內部含有許多邏輯塊和連線資源,而邏輯塊由與-或陣列和觸發器等構成,邏輯塊的功能由用戶編程決定。
  • 可編程邏輯器件:GAL、CPLD、FPGA
    打開APP 可編程邏輯器件:GAL、CPLD、FPGA 博科觀察 發表於 2021-01-08 16:01:30
  • 單片機編程用C語言還是彙編?
    單片機是一種可編程器件,單片機的出現使硬體設計變得更為簡單,產品的功能也更強大,而程序就是單片機的靈魂。目前功能稍微複雜一點的電子產品,都是以單片機為核心,再加以不通的外設電路實現不通的功能需求。單片機的編程可以通過彙編語言和C語言來實現。
  • 什麼是可編程邏輯器件(PLD)?
    可編程邏輯器件(Programmable Logic Device,縮寫PLD)屬於數字類型的電路晶片,而不是模擬或混合信號晶片。與一般數字晶片不同,PLD內部的數字電路可以在出廠後才規劃決定,而一般數字晶片在出廠前就已經決定其內部電路,無法在出廠後再次改變。
  • 三類主要的可編程邏輯器件
    GALGAL(Generic Array Logic, GAL,通用數組邏輯)以PAL(可編程數組邏輯,PLD的一種)為基礎,此是由萊迪思半導體公司所發明,GAL的特性與PAL相同,不過PAL的電路配置、配置只能進行一次的程序刻錄,不能再有第二次,而GAL則可反覆對電路配置、配置進行刻錄、清除、
  • 基於可編程邏輯器件實現八位微處理器軟核的設計
    基於可編程邏輯器件實現八位微處理器軟核的設計 張杰 發表於 2020-11-24 14:37:00 1、引言 SoC(SystemonaChip)以其高集成度
  • 基於FPGA的虛擬邏輯分析儀設計與實現
    現場可編程邏輯器件FPGA,是一種可由用戶根據所設計的數字系統的要求,在現場由自己配置、定義的高密度專用數字集成電路。它具有設計方便、靈活、校驗快和設計可重複改變的特點。本文討論了一種基於FPGA的虛擬邏輯分析儀的設計,通過採用高性能的FPGA器件,再利用PC機的強大處理功能,配合LabVIEW圖形化語言開發實現。
  • 基於51單片機的嵌入式SNMP代理器設計與實現
    SNMP一般用於計算機網絡和電信網絡,本文提出了用SNMP進行控制。由於其傳輸媒介是Internet,所以傳輸距離不受限制,這相對於其他工業控制總線有不可比擬的優勢,SNMP最大的優點是協議簡潔,適合嵌入式應用。SNMP體系可擴展性強,只要將新的MIB裝載在管理軟體上就可以實現對新的終端的控制與訪問,本文介紹了一種基於廉價的微控制器的實現嵌入式代理器的方案,以微處理器核心實現相關硬體及軟體。
  • 五大優勢凸顯 可編程邏輯或將呈現快速增長
    目前邏輯器件可分為兩大類 :固定邏輯器件和可編程邏輯器件:固定邏輯器件中的電路是永久性的,它們完成一種或一組功能 ,一旦製造完成,就無法改變;另一方面,可編程邏輯器件(PLD)是能夠為客戶提供範圍廣泛的多種邏輯容量、特性、速度和電壓參數的標準成品部件,而且此類器件可在任何時間改變,從而完成許多種不同的功能。
  • 用Python語言控制單片機
    ,然而現在Python已經完全可以脫離系統,直接進行單片機的開發了。  用Python語言控制單片機  MicroPython是在單片機上可以跑的Python,你可以通過Python腳本語言開發單片機程序。MicroPython基於ANSI C,語法跟Pyton 3基本一致,擁有自家的解析器、編譯器、虛擬機和類庫等。
  • 51單片機、STM32單片機、PIC單片機性能對比
    51單片機 應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由Intel推出,由於其典型的結構和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統,堪稱為一代「經典」,為以後的其它單片機的發展奠定了基礎。
  • AVR單片機與串行時鐘器件DS3231的應用設計
    1引言 由單片機構成的測控系統或智能顯示屏經常需要用到實時日曆或時鐘信號。為節省CPU資源,本文介紹了串行時鐘器件DS3231的應用及其與AVR單片機ATmega8的接口,該系統具有抗幹擾能力強,計時準確且不隨季節變化產生誤差的特點。
  • 單片機和PLD有什麼聯繫與區別,PLD入門須知的幾點小常識!
    EDA(即Electronic Design AutomaTIon) 即電子設計自動化,它是以計算機為工具,在EDA 軟體平臺上,對用硬體描述語言HDL 完成的設計文件自動地邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優化、邏輯布局布線、邏輯仿真,直至對於特定目標晶片進行適配編譯、邏輯影射和編程下載等。
  • 基於ZigBee的單片機無線通信系統實現
    在ZigBee協議中,根據設備的通信能力,可分為全功能設備(FFD))和精簡功能設備(RFD);根據設備的功能,可以分為協調器(coordinator)、路由器(router)和終端設備(end—device)3種邏輯設備。協調器是一種FFD設備,它是網絡的中心節點,負責網絡的啟動和配置。一個網絡中只允許有一個協調器,當整個網絡啟動和配置完成後,它的功能就相當於一個路由器。
  • 單片機簡介
    單片機簡介數字電路簡介在一個控制系統中, 單片機是電路的一部分, 單片機中的程序是針對其所在的電路編寫的。因此,要對單片機編程並實現一定的功能,必須了解整個系統的電路圖。不同的數字器件的電平判斷標準是不一樣的。常用的數字器件以高電平(超過某一閾值的電平)作為邏輯「1」 ,以低電平(低於某一閾值的電平)作為邏輯「0」 。其中高電平閾值大於低電平閾值,處於高電平閾值與低電平閾值之間的電壓是無效的。
  • 單片機C語言編程實現對舵機控制
    在智能小車編程過程中,舵機是實現小車避障、循跡的基礎。單片機通過控制舵機實現小車的轉向。本文主要介紹如何使用51單片機實現對舵機進行偏轉角度控制。所使用舵機型號為MG996R,使用晶片為STC89C52。