【正文】
為工藝庫(kù)器件從而生成了時(shí)模塊網(wǎng)表電路。event and c2 =39。) then if q4=1,3,5,7,8,10,12 q=31 then q=1。139。c3=39。 end if。 end PROCESS。 end。而每當(dāng)q3為 30,期間 c3(計(jì)數(shù)月的時(shí)鐘)為高電平,否則為低電平。 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 16 圖 48(a) 日 模塊仿真圖 圖 48(b) 日 模塊仿真圖 由波形可見這是一個(gè) 130的 30進(jìn)制計(jì)數(shù)器。 當(dāng)日期從 30到 1跳轉(zhuǎn)時(shí),c3 自動(dòng)跳變?yōu)?1,此時(shí) c3為月份的脈沖 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 17 月模塊 代碼: u5: process(c3,q) begin if(c339。139。 c4=39。 else q = q+1。039。 end if。 q4=q。 代碼解釋:日模塊輸出的 c3 作為月模塊的脈沖,當(dāng)時(shí)鐘 c3變化時(shí)運(yùn)行此模塊進(jìn)程,當(dāng)q4計(jì)數(shù)到 30的時(shí)候則 q4 賦值為 1繼續(xù)計(jì)數(shù)從而構(gòu)成一個(gè) 30 進(jìn)制的計(jì)數(shù)器。由圖片可以看出,這是一個(gè)初值為 5的月模塊,當(dāng)時(shí)間為 12m并且上升沿到來時(shí)自動(dòng)跳轉(zhuǎn)為 1,并且計(jì)數(shù)年的時(shí)鐘 c4 跳變?yōu)楦唠娖健? 當(dāng)月份從 12到 1跳轉(zhuǎn)時(shí),c4 自動(dòng)跳變?yōu)?1,此時(shí) c4為年的脈沖 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 18 圖 411 月模塊網(wǎng)表電路 在 Design Compiler 工具下將秒鐘模塊的 VHDL 語言描述的電路轉(zhuǎn)換為工藝庫(kù)器件從而生成了月模塊網(wǎng)表電路。event and c4 = 39。) then If q2099 then q = q + 1 。 end if。 q5=q。 代碼解釋:當(dāng)時(shí)鐘 c4變化時(shí)運(yùn)行此模塊進(jìn)程,當(dāng) q5 一直加法計(jì)數(shù)從而構(gòu)成一個(gè) N進(jìn)制加法的計(jì)數(shù)器。 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 19 圖 412(a) 年模塊仿真圖 圖 412(b) 年模塊仿真圖 由波形可見這是無上限的加法計(jì)數(shù)器。 當(dāng) c4 跳變?yōu)?1,此時(shí)年份自動(dòng)加 1 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 20 陰陽(yáng)歷顯示 process(byjj1) begin if byjj130 then yue2=byjj1/30。 nian2=nian。 day2=30((30byjj1)rem 30)。 end if。 代碼解釋: nian 是陽(yáng)歷年的標(biāo)志, yue 是陽(yáng)歷月的標(biāo)志, day 是陽(yáng)立日的標(biāo)志, run 是陽(yáng)歷閏年的標(biāo)志,若為高電平表示該年為閏年; niann 是陰歷年的標(biāo)志, yuen 是陰歷月的標(biāo)志, day是陰立日的標(biāo)志, run2 是陰歷閏年的標(biāo)志,若為高電平表示該年為閏年。 提醒功能 閏年閏月提醒 代碼: u8 : process(clk,q) begin if(clk39。139。 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 21 if ( ((q+1) rem 100)/=0 or ((q+1) rem 400)=0 ) and (q+1) rem 4 =0 then run=39。 else run=39。 end if。 end PROCESS。 end。 圖 415(a) 閏年閏月提醒仿真圖 圖 415(b) 閏年閏月提醒仿真圖 由圖可知,當(dāng)年份為 20 20 202 2028 等閏年年份時(shí)閏年提醒 run 信號(hào)均顯示為高電平。139。039。 end process。 圖 416(a) 節(jié)假日提醒仿真圖 圖 416(b) 節(jié)假日提醒仿真圖 由圖可知,當(dāng)為 3月 8日婦女節(jié)這天,節(jié)假日提醒信號(hào) jieri 顯示為高電平。139。039。 end process。 圖 417(a) 日程提醒仿真圖 圖 417(b) 日程提醒仿真圖 由圖 可知,設(shè)置的日程時(shí)間為 5月 20 日,當(dāng) 5 月 20 日到來時(shí)可以看到日程提醒信號(hào)richeng 顯示為高電平。event and clk=39。) then elsif ( jiaodui =39。 ) then q0=second2。q2=hour2。q4=month2。 end if。 代碼解釋:當(dāng)時(shí)鐘 clk變化時(shí)運(yùn)行此模塊進(jìn)程,當(dāng)時(shí)間校對(duì)信號(hào) jiaodui 為高電平的時(shí)候允許進(jìn)行時(shí)間校對(duì),這時(shí)把定義好的時(shí)間( year2, month2, day2, hour2, minute2,當(dāng)為 5 月 20 日時(shí),日程顯示為高電平 第四章:時(shí)鐘芯片各模塊的設(shè)計(jì)及仿真 24 second2)置入當(dāng)下的時(shí)間( year, month, day, hour, minute, second)。 鬧鈴功能 代碼: u5:u5:process(timing,q2,q1) begin if ( timing =39。 ) then if q5=year1 and q4=month1 q3=day1 and q2=hour1 and q1=minute1 then naoling=39。 end if。039。039。 end process。 圖 419(a) 鬧鈴模塊仿真圖 圖 419(b) 鬧鈴模塊仿真圖 由圖可知,鬧鈴設(shè)置的時(shí)間為 8點(diǎn) 10 分,由于沒有開啟鬧鈴功能所以此時(shí)鬧鐘不響鈴,在 8 點(diǎn) 10 分 2 秒的情況下開始鬧鈴功能,此時(shí)可以看到 naoling 同步顯示為高電平,滿足設(shè)計(jì)要求。邏輯級(jí)和 RTL級(jí)的優(yōu)化技術(shù)、工藝級(jí)的優(yōu)化技術(shù)、系統(tǒng)級(jí)的優(yōu)化技術(shù)、版圖和晶體管級(jí)的優(yōu)化技術(shù)。主要方式為關(guān)閉不用的邏輯和時(shí)鐘,使用專用電路代替可編程邏輯,使用規(guī)則的算法和結(jié)構(gòu),以減少控制負(fù)荷,去除不必要的存儲(chǔ)器以減少網(wǎng)表的面積。 圖 53 電子鐘芯片版圖 在虛擬機(jī)里打開 cadence 軟件,此次版圖是用 工藝完成的。因?yàn)樽罱K版圖是要用芯片制造的,所以繪制的必須是符合生產(chǎn)工藝要求的版圖,而工 藝要求就是通過設(shè)計(jì)規(guī)則來進(jìn)行定義的。最后一個(gè)過程第五章:電路網(wǎng)表和版圖 28 是經(jīng)過設(shè)計(jì)規(guī)則檢查來確保完成的版圖沒有違反設(shè)計(jì)規(guī)則。 總結(jié) 29 總結(jié) 本次設(shè)計(jì)不僅滿足了電子鐘的基本時(shí)間功能顯示,還添加了陰陽(yáng)歷顯示功能,這 對(duì)我們生活在中國(guó),隨時(shí)熟知中國(guó)各個(gè)節(jié)日帶來巨大的生活便利,譬如春節(jié)、臘八節(jié)、重陽(yáng)節(jié)等等。與此同時(shí),還陸續(xù)增加了閏年閏月提醒,節(jié)假日提醒,日程提醒等許多實(shí)用的功能,讓我們的生活節(jié)奏不斷穩(wěn)定。對(duì)于這次的研究,從生產(chǎn)經(jīng)濟(jì)成本等角度來說,研究過程中也盡可能的使電子鐘處于一個(gè)低功耗的 狀態(tài),而版圖則是根據(jù)總的電路網(wǎng)表來進(jìn)行繪制,同時(shí)做到的是,在總電路網(wǎng)表生成前做了時(shí)序約束,減少了不必要的觸發(fā)器以及競(jìng)爭(zhēng)冒險(xiǎn)的消除,進(jìn)而使電子鐘處于一個(gè)低功耗,低成本,盡可能小的面積和體積的狀態(tài)。隨著市場(chǎng)實(shí)時(shí)時(shí)鐘日歷芯片品類的不斷更新, IC 化的傳感器的多樣化,顯示方式也更加趨于人性。但總的目的還是降低成本,節(jié)能環(huán)保,貼近生活,方便生活。在這論文即將完成之際!首先應(yīng)該感謝的是在畢設(shè)的過程中不斷為我提供指導(dǎo),使我持續(xù)向前,于迷茫中指引我走出迷霧的衛(wèi)雅芬老師!畢設(shè)的選題之后,我的設(shè)計(jì)思路有過短暫的阻礙,是衛(wèi)老師讓我找到了靈感,在軟件的熟練使用和操作要求上,我存在不足,仍然是衛(wèi)老師利用自己的課下休息時(shí)間,無私地給我提供很多基礎(chǔ)的指導(dǎo)和詳細(xì)的講解。正是在這個(gè)不斷交流和討論的過程中,老師一次 次讓我茅塞頓開,讓我尋找到了柳暗花明。也讓我在無助的時(shí)候,感受到了親人朋友的溫暖!正應(yīng)了那句話:一日為師,終身為父!再次感謝我敬愛的衛(wèi)雅芬老師!這次畢設(shè),將讓我一輩子銘記!謝謝!感謝衛(wèi)老師這一路的陪伴! 大學(xué)四年的生活學(xué)習(xí)中,我也獲得過老師們無數(shù)的支持與幫助,給我提出的足以讓我受益終生的許多寶貴意見,感謝所有關(guān)心幫助過我的良師益友 。 use ieee. 。 entity second is port(clk: in std_logic。 q0:out integer。 end 。 begin process(clk,q) begin if(clk39。139。 c0=39。 else q = q+1。039。 end if。 q0=q。 分鐘模塊: library ieee。 use 。 jiaodui:in std_logic。 q1:out integer)。 architecture a of minute is signal q: integer:=35。event and c0=39。) then 附錄 33 if q=59 then q=0 。139。c1=39。 end if。 end PROCESS。 end。 use ieee. 。 entity hour is port(c1: in std_logic。 jiaodui:in std_logic。 q2:out integer)。 architecture a of hour is signal q: integer:=5。 begin process(c1,q) begin if(c139。139。c22=c22+1。139。c2=39。 end if。 end PROCESS。 end。 use ieee. 。 entity day is port(c2: in std_logic。 c3:out std_logic。 附錄 34 end 。 begin process(c2,q) begin if(c239。139。 c3=39。 else q = q+1。039。 end if。 q3=q。 月模塊: library ieee。 use 。 jiaodui:in std_logic。 q4:out integer)。 architecture a of month is signal q: integer:=4。event and c3=39。) then if q=12 then q=1 。139。c4=39。 end if。 end PROCESS。 end。 use ieee. 。 entity year is 附錄 35 port(clk: in std_logic。 c2:out std_logic。 end 。 begin process(clk,q) begin if(clk39。139。 end if。 q3=q。 陰陽(yáng)歷顯示 : library ieee。 use 。 nian:in integer range 1900 to 2099。 day: in integer range 1 to 30。 dayn:out integer range 1 to 30。 niann: out integer range 1899 to 2099)。 architecture one of nong1 is type nong is array(0 to 199) of std_logic_vector(22 downto