易修改無(wú)需處理器干預(yù)的LED燈序電路設(shè)計(jì)方案
LED技術(shù)越來(lái)越多的應(yīng)用到我們的生活中,對(duì)于開(kāi)發(fā)者來(lái)說(shuō),通過(guò)片上系統(tǒng)(SOC)平臺(tái)實(shí)現(xiàn)LED或其他設(shè)備次序器,從而找到一種減少成本、降低設(shè)計(jì)難度的設(shè)計(jì)需求變得越來(lái)越普遍。SOC器件通過(guò)單芯片集成了完整LED子系統(tǒng)所需的單片機(jī)功能和各種數(shù)字外圍設(shè)備。本文介紹了一種基于最新SOC技術(shù)的簡(jiǎn)單的8 LED燈序電路設(shè)計(jì)。在這個(gè)設(shè)計(jì)中最精彩的部分就是微處理器無(wú)需進(jìn)行干預(yù)。不是采用傳統(tǒng)的由單片機(jī)處理器干預(yù)的被動(dòng)的數(shù)字外設(shè),此設(shè)計(jì)完全是基于SOC數(shù)字系統(tǒng)的智能分布式處理功能。這使中央處理器從管理燈序電路的工作中解脫出來(lái),節(jié)省CPU資源從而設(shè)計(jì)效率更高。
該設(shè)計(jì)方法可以很容易的擴(kuò)展到LED以外的需要用指定順序開(kāi)啟或關(guān)閉的其他設(shè)備,比如不同長(zhǎng)度、不同模式的序列定時(shí)器等等。該設(shè)計(jì)示例中還有額外的功能:
· 7位計(jì)數(shù)器(TC)終端計(jì)數(shù)
· 指示設(shè)備開(kāi)啟關(guān)閉的輸出
· 為序列器件提供的8位輸出
· 給Verilog狀態(tài)機(jī)的時(shí)鐘輸入
· 給8位ALU(bit-slice)處理器的總線時(shí)鐘
這篇文章中用到的開(kāi)發(fā)工具是賽普拉斯半導(dǎo)體可編程片上系統(tǒng)(PSoC)的集成開(kāi)發(fā)環(huán)境PSoC Creator。
原理圖設(shè)計(jì)
設(shè)計(jì)的第一步是在創(chuàng)建一個(gè)Verilog符號(hào)來(lái)定義輸入、輸出和與之相關(guān)的位寬度(見(jiàn)圖1)。一旦上層Verilog模型(原理圖)已經(jīng)建立,它就可以用來(lái)產(chǎn)生包含所有模塊中引腳定義的Verilog源文件。這一步不需要開(kāi)發(fā)功能Verilog代碼。
圖1:Verilog 符號(hào)。
剛才創(chuàng)建的Verilog符號(hào)現(xiàn)在可以放置到高層原理圖設(shè)計(jì)。在這里,每一個(gè)輸入及輸出都能連接到時(shí)鐘源、I / O引腳、狀態(tài)和控制寄存器等等。8-LED燈序電路高層原理設(shè)計(jì)見(jiàn)圖2。
圖2:高層原理設(shè)計(jì)示例。
到現(xiàn)在為止,Verilog符號(hào)已經(jīng)建立,放置到了高層原理設(shè)計(jì)里,并且連接到了設(shè)備的I/ O和時(shí)鐘?,F(xiàn)在可以生成Verilog代碼來(lái)履行某些功能,在這個(gè)案例中可使發(fā)光二極管閃爍。為了管理序列的邏輯能力,可以在設(shè)計(jì)里引入一個(gè)簡(jiǎn)單的數(shù)據(jù)路徑。
這個(gè)數(shù)據(jù)路徑包含一個(gè)8位ALU,其具備精簡(jiǎn)指令集,兩個(gè)數(shù)據(jù)寄存器、兩個(gè)累積器、位移和比較邏輯、一個(gè)4 deep的 8位FIFO。為了保持設(shè)計(jì)簡(jiǎn)單,只用到了兩個(gè)ALU,用來(lái)將累加器設(shè)置為0,每次開(kāi)啟或關(guān)閉序列執(zhí)行的時(shí)候累加器就遞增。對(duì)于較復(fù)雜的定序設(shè)計(jì),開(kāi)發(fā)人員可以聯(lián)合多個(gè)ALU形成一個(gè)16位或24位處理器。這樣的處理器類似于bit-slice處理器,其在70年代和80年代早期比較流行,它可以為次序的子系統(tǒng)提供足夠的處理能力。
數(shù)據(jù)路徑配置工具示圖如下。請(qǐng)注意CFGRAM(配置RAM)的前二行注釋:“A0 - 0”,這是給累加器0清零,“A0 - A0+1”,實(shí)現(xiàn)在A0累加值。
圖3:數(shù)據(jù)路徑配置工具。
片上系統(tǒng)(SOC)技術(shù)以可編程的方式重新利用了bit-slice技術(shù),用來(lái)把處理任務(wù)智能地分配到其他可編程硬件,從而減少主CPU的負(fù)荷。使用這種方法,可以研制出一種標(biāo)準(zhǔn)狀態(tài)機(jī)。不同的是,通常算法功能要消耗大量的邏輯門。而在新的方式中這已無(wú)需再關(guān)注,因?yàn)檫@些功能在標(biāo)準(zhǔn)標(biāo)準(zhǔn)ALU即可實(shí)現(xiàn),它包含由基于PLD的狀態(tài)機(jī)控制的數(shù)據(jù)路徑與/或邏輯。
這個(gè)設(shè)計(jì)獨(dú)立運(yùn)行于主CPU。主應(yīng)用程序可以通過(guò)API(可以修改執(zhí)行參數(shù))控制燈序電路,燈序電路初始化之后,就不再需要CPU。此外,這種實(shí)現(xiàn)方式同使用CPU方式相比,本身即可提高效率、可以使用更少的晶體管,從而更好的降低整體系統(tǒng)功耗,給其他特性預(yù)留出更多資源。
本文討論了LED燈序電路設(shè)計(jì),同樣的設(shè)計(jì)方法也可用到類似設(shè)計(jì),可以通過(guò)功能強(qiáng)大的SOC集成結(jié)構(gòu)來(lái)執(zhí)行各種各樣的需要頻繁處理的任務(wù),降低主CPU負(fù)荷?,F(xiàn)在,工程師不斷面臨很多壓力:提高性能、降低功耗、減少成本…擁有一種像這樣的系統(tǒng)設(shè)計(jì)工具可以幫助工程師不斷地創(chuàng)造奇跡,達(dá)到公眾對(duì)他們的期望。
評(píng)論