本文介紹了一種基于最新SOC技術(shù)的簡單的8 LED燈序電路設計,。在這個設計中最精彩的部分就是微處理器無需進行干預,。不是采用傳統(tǒng)的由單片機處理器干預的被動的數(shù)字外設,此設計完全是基于SOC數(shù)字系統(tǒng)的智能分布式處理功能,。這使中央處理器從管理燈序電路的工作中解脫出來,,節(jié)省CPU資源從而設計效率更高。
該設計方法可以很容易的擴展到LED以外的需要用指定順序開啟或關閉的其他設備,,比如不同長度,、不同模式的序列定時器等等。該設計示例中還有額外的功能:
· 7位計數(shù)器(TC)終端計數(shù)
· 指示設備開啟關閉的輸出
· 為序列器件提供的8位輸出
· 給Verilog狀態(tài)機的時鐘輸入
· 給8位ALU(bit-slice)處理器的總線時鐘
這篇文章中用到的開發(fā)工具是賽普拉斯半導體可編程片上系統(tǒng)(PSoC)的集成開發(fā)環(huán)境PSoC Creator,。
原理圖設計
設計的第一步是在創(chuàng)建一個Verilog符號來定義輸入,、輸出和與之相關的位寬度(見圖1)。一旦上層Verilog模型(原理圖)已經(jīng)建立,,它就可以用來產(chǎn)生包含所有模塊中引腳定義的Verilog源文件,。這一步不需要開發(fā)功能Verilog代碼。

圖1:Verilog 符號,。
剛才創(chuàng)建的Verilog符號現(xiàn)在可以放置到高層原理圖設計。在這里,,每一個輸入及輸出都能連接到時鐘源,、I / O引腳、狀態(tài)和控制寄存器等等,。8-LED燈序電路高層原理設計見圖2,。

圖2:高層原理設計示例,。
到現(xiàn)在為止,,Verilog符號已經(jīng)建立,放置到了高層原理設計里,,并且連接到了設備的I/ O和時鐘?,F(xiàn)在可以生成Verilog代碼來履行某些功能,在這個案例中可使發(fā)光二極管閃爍,。為了管理序列的邏輯能力,,可以在設計里引入一個簡單的數(shù)據(jù)路徑,。
這個數(shù)據(jù)路徑包含一個8位ALU,其具備精簡指令集,,兩個數(shù)據(jù)寄存器,、兩個累積器、位移和比較邏輯,、一個4 deep的 8位FIFO,。為了保持設計簡單,只用到了兩個ALU,,用來將累加器設置為0,,每次開啟或關閉序列執(zhí)行的時候累加器就遞增。對于較復雜的定序設計,,開發(fā)人員可以聯(lián)合多個ALU形成一個16位或24位處理器,。這樣的處理器類似于bit-slice處理器,其在70年代和80年代早期比較流行,,它可以為次序的子系統(tǒng)提供足夠的處理能力,,。
數(shù)據(jù)路徑配置工具示圖如下。請注意CFGRAM(配置RAM)的前二行注釋:“A0 <- 0”,,這是給累加器0清零,,“A0 <- A0+1”,實現(xiàn)在A0累加值,。

圖3:數(shù)據(jù)路徑配置工具。
片上系統(tǒng)(SOC)技術(shù)以可編程的方式重新利用了bit-slice技術(shù),,用來把處理任務智能地分配到其他可編程硬件,,從而減少主CPU的負荷。使用這種方法,,可以研制出一種標準狀態(tài)機,。不同的是,通常算法功能要消耗大量的邏輯門,。而在新的方式中這已無需再關注,,因為這些功能在標準標準ALU即可實現(xiàn),它包含由基于PLD的狀態(tài)機控制的數(shù)據(jù)路徑與/或邏輯,。
這個設計獨立運行于主CPU,。主應用程序可以通過API(可以修改執(zhí)行參數(shù))控制燈序電路,燈序電路初始化之后,,就不再需要CPU,。此外,這種實現(xiàn)方式同使用CPU方式相比,本身即可提高效率,、可以使用更少的晶體管,,從而更好的降低整體系統(tǒng)功耗,給其他特性預留出更多資源,。
本文討論了LED燈序電路設計,同樣的設計方法也可用到類似設計,,可以通過功能強大的SOC集成結(jié)構(gòu)來執(zhí)行各種各樣的需要頻繁處理的任務,,降低主CPU負荷。現(xiàn)在,,工程師不斷面臨很多壓力:提高性能,、降低功耗、減少成本…擁有一種像這樣的系統(tǒng)設計工具可以幫助工程師不斷地創(chuàng)造奇跡,,達到公眾對他們的期望,。