SOPC(SystemOnProgrammableChip) 是用可編程邏輯技術(shù)把整個系統(tǒng)放到一片硅片上的一種特殊嵌入式系統(tǒng)一方面,它片上系統(tǒng)(SOC)完成整個系統(tǒng)的邏輯功能;另一方面,它是可編程系統(tǒng),具有靈活的設(shè)計方式,可裁剪,擴充,升級,并具備軟硬件在系統(tǒng)可編程功能J.S)PC 是PID 和ASIC 技術(shù)融合的結(jié)果,可以認(rèn)為SOPC代表了半導(dǎo)體產(chǎn)業(yè)未來的發(fā)展方向。本文采用EDA 軟件QuartuslI 中的SOPCBuilder 構(gòu)建了一個SOPC 系統(tǒng)。并以構(gòu)建的系統(tǒng)為平臺進行電子鐘的軟件設(shè)計:最后在Altera公司FPGA 多媒體開發(fā)平臺DE2 上進行實現(xiàn)該方案不同于基于處理器或控制器及SOC 的嵌入式系統(tǒng),基于SOPC 的嵌入式系統(tǒng)具有可配置的特點,不會包括任何專用外設(shè),而是可根據(jù)需要靈活地在一片F(xiàn)PGA 中構(gòu)造外設(shè)接口。
電子鐘是一種用數(shù)字電子技術(shù)實現(xiàn)時、分、秒自然計時的裝置,與機械式時鐘相比具有更高的準(zhǔn)確性和直觀性,而且使用壽命較長,與機械鐘相比具有更高的準(zhǔn)確性和直觀性,具有更長的使用壽命,已得到廣泛的使用。數(shù)字鐘的設(shè)計方法有許多種,例如可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用單片機來實現(xiàn)電子鐘等等。這些方法都各有其特點,其中利用單片機實現(xiàn)的電子鐘具有編程靈活,以便于功能的擴展。
電子鐘設(shè)計原理
數(shù)字鐘的示意如下圖所示。它由石英晶體振蕩器、分頻器、計數(shù)器、譯碼器顯示器和校時電路組成。振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準(zhǔn),然后經(jīng)過分頻器輸出標(biāo)準(zhǔn)秒脈沖。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1”規(guī)律計數(shù)。計數(shù)器的輸出分別經(jīng)譯碼器送顯示器顯示。計時出現(xiàn)誤差時,可以用校時電路校時、校分。
電子鐘功能
1) 具有正確的時、分、秒計時功能。
2) 計時結(jié)果要用數(shù)碼管分別顯示進、分、秒的十位和個位。
3) 有校時功能。當(dāng)S鍵按下時,分計數(shù)器以秒脈沖的速度遞增,并按60min循環(huán),即
計數(shù)到期59min后再回到00。當(dāng)工A鍵按下時,時計數(shù)器以秒脈沖的速度遞增,并按24h循環(huán),即計數(shù)到23h后再回00。
4) 利用揚聲器整點報時。當(dāng)計時到達(dá)59分59秒時開始報時,在59分50秒、52秒、54秒、56秒、58秒時鳴叫,鳴叫聲頻為500hz;到達(dá)59分60秒時為最后一聲整點報時,頻率為1khz。
控定時器的基本組成
數(shù)字鐘鐘控定時器由:計數(shù)器、D觸發(fā)器、數(shù)據(jù)選擇器、數(shù)據(jù)分配器、譯碼器、報時器、鬧時器組、分頻器和一個或非門這九大模塊構(gòu)成。計數(shù)器主要分為24進制計數(shù)器和60進制計數(shù)器,24進制計數(shù)器對數(shù)字鐘的小時位計行計數(shù),60進制對數(shù)字鐘的分和秒進行計數(shù)。D觸發(fā)器主要是用在對數(shù)字進行校準(zhǔn)時的按鍵消抖作用,以免在校時的時候產(chǎn)生抖動信號。數(shù)據(jù)分配器的作用是在動態(tài)譯碼時選擇輸出數(shù)據(jù)。譯碼器對輸出信號進行譯碼在數(shù)碼管上顯示出來,讓大家數(shù)字鐘的表示直觀。報時電路是使時鐘在整點有報時功能而設(shè)計的。鬧時器是對時鐘進行比較產(chǎn)生鬧時電信號的電路。
D觸發(fā)器的設(shè)計
在本設(shè)計中運用到了3個D觸發(fā)器,它主要是用在對數(shù)字進行校準(zhǔn)時的按鍵消抖作用,以免在校時的時候產(chǎn)生抖動信號。
在電路中用到了D觸發(fā)器74LS74,74LS74的管腳圖如圖3-1。
觸發(fā)器,它是由門電路構(gòu)成的邏輯電路,它的輸出具有兩個穩(wěn)定的物理狀態(tài)(高電平和低電平),所以它能記憶一位二進制代碼。觸發(fā)器是存放在二進制信息的最基本的單元。按其功能可為基本RS觸發(fā)器觸、JK觸發(fā)器、D觸發(fā)器和T觸發(fā)器。
這幾種觸發(fā)器都有集成電路產(chǎn)品。其中應(yīng)用最廣泛的當(dāng)數(shù)JK觸發(fā)器和D觸發(fā)器。不過,深刻理解RS觸發(fā)器對全面掌握觸發(fā)器的工作方式或動作特點是至關(guān)重要的。事實上,JK觸發(fā)器和D觸發(fā)器是RS觸發(fā)器的改進型,其中JK觸發(fā)器保留了兩個數(shù)據(jù)輸入端,而D觸發(fā)器只保留了一個數(shù)據(jù)輸入端。D觸發(fā)器有邊沿D觸發(fā)器和高電平D觸發(fā)器。74LS74為一個電平D觸發(fā)器。
數(shù)據(jù)選擇器的設(shè)計
在多路數(shù)據(jù)傳送過程中,能夠根據(jù)需要將其中任意一路選出來的電路,叫做數(shù)據(jù)選擇器,也稱多路選擇器或多路開關(guān)。數(shù)據(jù)選擇器(MUX)的邏輯功能是在地址選擇信號的控制下,從多路數(shù)據(jù)中選擇一路數(shù)據(jù)作為輸出信號。
通過QuartusII軟件進行編譯后,仿真結(jié)果如圖3-2所示,
打包后成元器件如圖3-3所示;
計數(shù)器的設(shè)計
計數(shù)器是一種計算輸入脈沖的時序邏輯網(wǎng)絡(luò),被計數(shù)的輸入信號就是時序網(wǎng)絡(luò)的時鐘脈沖,它不僅可以計數(shù)而且還可以用來完成其他特定的邏輯功能,如測量、定時控制、數(shù)字運算等等。
數(shù)字鐘的計數(shù)電路是用兩個六十進制計數(shù)電路和“24進制”計數(shù)電路實現(xiàn)的。數(shù)字鐘的計數(shù)電路的設(shè)計可以用反饋清零法。當(dāng)計數(shù)器正常計數(shù)時,反饋門不起作用,只有當(dāng)進位脈沖到來時,反饋信號將計數(shù)電路清零,實現(xiàn)相應(yīng)模的循環(huán)計數(shù)。以六十進制為例,當(dāng)計數(shù)器從00,01,02,……,59計數(shù)時,反饋門不起作用,只有當(dāng)?shù)?0個秒脈沖到來時,反饋信號隨即將計數(shù)電路清零,實現(xiàn)模為60的循環(huán)計數(shù)。
下面是用Verilog HDL語言編寫的24進制、60進制計數(shù)器的程序代碼: 1)24進制計數(shù)器程序代碼;
module count24(ten,one,clk); output[3:0] ten,one; input clk;
reg[3:0] ten,one; always @(posedge clk) begin
if(ten[3:0]==2&&one[3:0]==3) begin
ten[3:0]《=0; one[3:0]《=0; end
else if(one[3:0]==9) begin
one[3:0]《=0;
ten[3:0]《=ten[3:0]+1; end else
one[3:0]《=one[3:0]+1; end
endmodule
通過QuartusII軟件進行編譯后,仿真結(jié)果如圖3-4所示,
打包后成元器件如圖3-5所示;
60進制計數(shù)器程序代碼;
module count60(cout,ten,one,clk); output[3:0] ten,one; output cout; input clk;
reg[3:0] ten,one; always @(posedge clk) begin
if(one[3:0]==9) begin
one[3:0]《=0; if(ten[3:0]==5) ten[3:0]《=0; else
ten[3:0]《=ten[3:0]+1; end else
one[3:0]《=one[3:0]+1; end
assign cout=(ten[3:0]==0&&one[3:0]==0)?1:0; endmodule
通過QuartusII軟件進行編譯后,仿真結(jié)果如圖3-6所示;
打包后成元器件如圖3-7所示
評論
查看更多