




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 29 1 引 言20世紀末,電子技術獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。課堂智能響鈴系統(tǒng)走時精度高,穩(wěn)定性好,實用方便,不需要經(jīng)常調(diào)教,這種響鈴具有時、分、秒計數(shù)顯示功能,以24小時循環(huán)計時,時鐘計數(shù)顯示時有LED燈的花樣顯示,具有調(diào)節(jié)小時、分鐘及清零的功能以及整點報時功能。1.1 課程設計目的作為通信專業(yè)的學生,通過這次EDA方面的課程設計,可以提高我們對EDA領域及通信電路設計領域的認識,有利于培養(yǎng)我們在通信電路EDA方面
2、的設計能力。一人一題特別有利于鍛煉我們獨立分析問題和解決問題的能力。設計過程的復雜加老師的嚴格要求有益于培養(yǎng)我們嚴謹?shù)墓ぷ髯黠L。本次課題是計算機組成原理的課程設計,旨在通過自己對所需功能芯片的設計與實現(xiàn)來鞏固以前所學的計算機硬件基礎知識,同時也提高動手實踐的能力,還有為將來進行更大規(guī)模更復雜的開發(fā)積累經(jīng)驗。1.2 課程設計內(nèi)容本次設計以智能打鈴為主,實現(xiàn)時鐘計數(shù):完成時、分、秒的正確計時并且顯示所計的數(shù)字;對秒、分60進制計數(shù),即從0到59循環(huán)計數(shù),時鐘24進制計數(shù),即從0到23循環(huán)計數(shù),并且在數(shù)碼管上顯示數(shù)值。以及時間設置:手動調(diào)節(jié)分鐘、小時,可以對所設計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具
3、有使用功能。我們可以通過實驗板上的鍵7和鍵4進行任意的調(diào)整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。清零功能:reset為復位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復位蜂鳴器在整點時有報時信號產(chǎn)生,蜂鳴器報警,產(chǎn)生“滴答.滴答”的報警聲音。LED燈在時鐘顯示時有花樣顯示信號產(chǎn)生。即根據(jù)進位情況,LED不停的閃爍,從而產(chǎn)生“花樣”信號。2 理論基礎2.1 Verilog HDL語言概述Verilog HDL是一種硬件描述語言(HDL:Hardware Discription Language),是一種以文本形式來描述數(shù)字系
4、統(tǒng)硬件的結構和行為的語言。Verilog HDL就是在用途最廣泛的C語言的基礎上發(fā)展起來的一種件描述語言, 1983年,Gateway Design Automation(GDA)硬件描述語言公司的Philip Moorby首創(chuàng)了Verilog HDL。后來Moorby成為Verilog HDL-XL的主要設計者和Cadence公司的第一合伙人。1984至1986年,Moorby設計出第一個關于Verilog HDL的仿真器,并提出了用于快速門級仿真的XL算法,使Verilog HDL語言得到迅速發(fā)展。1987年Synonsys公司開始使用Verilog HDL行為語言作為綜合工具的輸入。19
5、89年Cadence公司收購了Gateway公司,Verilog HDL成為Cadence公司的私有財產(chǎn)。1990年初,Cadence公司把Verilog HDL和Verilog HDL-XL分開,并公開發(fā)布了Verilog HDL。隨后成立的OVI(Open Verilog HDL International)組織負責Verilog HDL的發(fā)展并制定有關標準,OVI由Verilog HDL的使用者和CAE供應商組成。1993年,幾乎所有ASIC廠商都開始支持Verilog HDL,并且認為Verilog HDL-XL是最好的仿真器。同時,OVI推出2.0版本的Verilong HDL規(guī)范,
6、IEEE則將OVI的Verilog HDL2.0作為IEEE標準的提案。1995年12月,IEEE制定了Verilog HDL的標準IEEE1364-1995。目前,最新的Verilog語言版本是2000年IEEE公布的Verilog 2001標準,其大幅度地提高了系統(tǒng)級和可綜合性能。 Verilog HDL的最大特點就是易學易用,如果有C語言的編程經(jīng)驗,可以在一個較短的時間內(nèi)很快的學習和掌握,因而可以把Verilog HDL內(nèi)容安排在與ASIC設計等相關課程內(nèi)部進行講授,由于HDL語言本身是專門面向硬件與系統(tǒng)設計的,這樣的安排可以使學習者同時獲得設計實際電路的經(jīng)驗。與之相比,VHDL的學習要
7、困難一些。但Verilog HDL較自由的語法,也容易造成初學者犯一些錯誤,這一點要注意。 Verilog HDL既是一種行為描述語言,也是一種結構描述語言。如果按照一定的規(guī)則和風格編寫代碼,就可以將功能行為模塊通過工具自動轉化為門級互連的結構模塊。這意味著利用Verilog語言所提供的功能,就可以構造一個模塊間的清晰結構來描述復雜的大型設計,并對所需的邏輯電路進行嚴格的設計。Verilog HDL 硬件描述語言在電子設計自動化中扮演著重要的角色,他是EDA 技術研究的重點之一。 下面列出的是Verilog語言的主要功能: 可描述順序執(zhí)行或并行執(zhí)行的程序結構; 用延遲表示式或事件表達式來明確地
8、控制過程的啟動時間; 通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為; 提供了條件和循環(huán)等程序結構; 提供了可帶參數(shù)且非零延續(xù)時間的任務程序結構; 提供了可定義新的操作符的函數(shù)結構; 提供了用于建立表達式的算術運算符、邏輯運算符和位運算符; 提供了一套完整的表示組合邏輯基本元件的原語; 提供了雙向通路和電阻器件的描述; 可建立MOS器件的電荷分享和衰減模型; 可以通過構造性語句精確地建立信號模型;2.2 MaxplusII簡介Max+plusII(或?qū)懗蒑axplus2,或MP2) 是Altera公司推出的的第三代PLD開發(fā)系統(tǒng)(Altera第四代PLD開發(fā)系統(tǒng)被稱為:QuartusII,
9、主要用于設計新器件和大規(guī)模CPLD/FPGA).使用MAX+PLUSII的設計者不需精通器件內(nèi)部的復雜結構。設計者可以用自己熟悉的設計工具(如原理圖輸入或硬件描述語言)建立設計,MAX+PLUSII把這些設計轉自動換成最終所需的格式。其設計速度非???。對于一般幾千門的電路設計,使用MAX+PLUSII,從設計輸入到器件編程完畢,用戶拿到設計好的邏輯電路,大約只需幾小時。設計處理一般在數(shù)分鐘內(nèi)內(nèi)完成。特別是在原理圖輸入等方面,Maxplus2被公認為是最易使用,人機界面最友善的PLD開發(fā)軟件,特別適合初學者使用。通??蓪axplus2設計流程歸納為以下7個步驟:(1)使用文本編輯器輸入設計源文
10、件。在傳統(tǒng)設計中,設計人員是應用傳統(tǒng)的原理圖輸入方法來開始設計的。自90年代初,Verilog、VHDL、AHDL等硬件描述語言的輸入方法在大規(guī)模設計中得到了廣泛應用。(2)前仿真(功能仿真)。設計的電路必須在布局布線前驗證電路功能是否有效。(3)設計編譯。設計輸入之后就有一個從高層次系統(tǒng)行為設計向門級邏輯電路設轉化翻譯過程,即把設計輸入的某種或某幾種數(shù)據(jù)格式(網(wǎng)表)轉化為軟件可識別的某種數(shù)據(jù)格式(網(wǎng)表)。(4)優(yōu)化。對于上述綜合生成的網(wǎng)表,根據(jù)布爾方程功能等效的原則,用更小更快的綜合結果代替一些復雜的單元,并與指定的庫映射生成新的網(wǎng)表,這是減小電路規(guī)模的一條必由之路。(5)布局布線。(6)后
11、仿真(時序仿真)需要利用在布局布線中獲得的精確參數(shù)再次驗證電路的時序。(7)生產(chǎn)。布線和后仿真完成之后,就可以開始ASCI或PLD芯片的投產(chǎn)。Max Plus II的設計流程可以用如下圖2.1所示。圖形成VHDL編輯器編譯網(wǎng)表提取數(shù)據(jù)庫建立邏輯綜合邏輯分割匹配延時網(wǎng)表提取編輯文件匯編編輯器圖2.1Max Plus II 設計流程從圖2.1可清晰了解到Max Plus II提供了一種與結構無關的設計環(huán)境,使設計者能方便地進行設計輸入、快速處理和器件編程。他包括設計輸入編輯、編譯網(wǎng)表提取、數(shù)據(jù)庫建立、邏輯綜合、邏輯分割、適配、延時網(wǎng)表提取、編輯文件匯編以及編程下載9個步驟。3 課堂智能響鈴系統(tǒng)的設
12、計方案3.1設計思路系統(tǒng)設計:根據(jù)總體方框圖及各部分分配的功能可知,本系統(tǒng)可以由秒計數(shù)器、分鐘計數(shù)器、小時計數(shù)器、整點報時、分的調(diào)整以及小時的調(diào)整和一個頂層文件構成。采用自頂向下的設計方法,子模塊利用Verilog HDL語言設計,頂層文件用原理圖的設計方法。顯示:小時采用24進制,而分鐘和秒均60進制。課堂智能響鈴系統(tǒng)的電路組成方框圖3.1所示。數(shù)字時鐘控制單元時調(diào)整分調(diào)整使能端信號CLK信號時顯示分顯示秒顯示24進制60進制60進制LED顯示整點報時花樣顯示 圖3.1 響鈴系統(tǒng)流程圖對各模塊進行連線,從而得到以下總線路圖如圖3.2所示。 圖3.2 響鈴系統(tǒng)總連線圖3.2分塊設計與仿真1)
13、秒計數(shù)器圖3.3秒計數(shù)器模塊 圖3.4 秒表計數(shù)器仿真波形分析:利用60進制計數(shù)器完成00到59的循環(huán)計數(shù)功能,當秒計數(shù)至59時,再來一個時鐘脈沖則產(chǎn)生進位輸出,即enmin=1;reset作為復位信號低電平有效,即高電平時正常循環(huán)計數(shù),低電平清零。2) 分鐘計數(shù)器 圖3.5分鐘計數(shù)器模塊 圖3.6分鐘計數(shù)器模塊仿真波形分析:小時計數(shù)模塊利用24進制計數(shù)器,通過分鐘的進位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(shù)。3)小時計數(shù)器圖3.7時鐘計數(shù)器模塊圖3.8時鐘計數(shù)器模塊仿真波形分析:小時計數(shù)模塊利用24進制計數(shù)器,通過分鐘的進位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(shù)。4)整點報時模塊 圖3.9整
14、點報時模塊圖3.10整點報時模塊仿真波形分析:由圖知對于整點報時模塊,當分鐘計數(shù)至59時來一個時鐘脈沖則產(chǎn)生一個進位信號,分鐘計數(shù)到00,此時產(chǎn)生報警信號持續(xù)一分鐘。當有時鐘脈沖時lamp顯示燈就閃爍輪續(xù)點亮。4課堂智能響鈴系統(tǒng)設計的仿真與實現(xiàn)要實現(xiàn)的功能:可產(chǎn)生秒計數(shù),分鐘計數(shù),小時計數(shù),整點報時四種信號,能夠?qū)崿F(xiàn)信號的轉換(select)并且頻率可調(diào)。主要由三部分組成:地址指針控制模塊,四種信號數(shù)據(jù)存儲模塊,D/A轉換模塊。前面2個模塊在Max+plusII中實現(xiàn),該部分的實現(xiàn)框圖如圖4.1所示。圖4.1實現(xiàn)功能框圖4.1 響鈴系統(tǒng)的仿真與實現(xiàn)該模塊的功能采用Verilog HDL來描述,
15、程序請見附件。該部分功能驗證的波形仿真結果如圖4.2所示。 圖4.2課堂智能響鈴系統(tǒng)總體仿真圖波形分析輸出信號second6.0表示:秒計數(shù)模塊,利用60進制計數(shù)器完成00到59的循環(huán)計數(shù)功能,當秒計數(shù)至59時,再來一個時鐘脈沖則產(chǎn)生進位輸出,即enmin=1;reset作為復位信號低電平有效,即高電平時正常循環(huán)計數(shù),低電平清零。輸出信號min6.0表示:分鐘計數(shù)模塊,小時計數(shù)模塊利用24進制計數(shù)器,通過分鐘的進位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(shù)。輸出信號hour5.表示:小時計數(shù)模塊,小時計數(shù)模塊利用24進制計數(shù)器,通過分鐘的進位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(shù)。輸入信號lamp
16、2.0表示:整點報時模塊,當分鐘計數(shù)至59時來一個時鐘脈沖則產(chǎn)生一個進位信號,分鐘計數(shù)到00,此時產(chǎn)生報警信號持續(xù)一分鐘。當有時鐘脈沖時lamp顯示燈就閃爍輪續(xù)點亮。4.2 系統(tǒng)設計有待提高和改進的地方本課程設計是基于Verilog HDL語言的課堂智能響鈴系統(tǒng)設計。據(jù)理來說課堂的響鈴時間不應該是整點。但由于課程設計的時間有限,本人的知識水平有限,設計的響鈴系統(tǒng)是整點報時,這是本設計的一大缺陷。如果能設計出專業(yè)的課堂響鈴系統(tǒng),響鈴的時間能夠根據(jù)要求做相應的調(diào)整,這也是本文最初的設計思路,那樣設計就更加完美。5 小結本次課程設計要求編寫一個基于Verilog HDL語言的課堂智能響鈴系統(tǒng),并用M
17、ax Plus II軟件進行仿真。根據(jù)搜索相關資料及自我理解,我本次的設計以智能打鈴為主,實現(xiàn)時鐘計數(shù):完成時、分、秒的正確計時并且顯示所計的數(shù)字;對秒、分60進制計數(shù),即從0到59循環(huán)計數(shù),時鐘24進制計數(shù),即從0到23循環(huán)計數(shù),并且在數(shù)碼管上顯示數(shù)值。以及時間設置:手動調(diào)節(jié)分鐘、小時,可以對所設計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。清零功能:reset為復位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復位蜂鳴器在整點時有報時信號產(chǎn)生,蜂鳴器報警,產(chǎn)生“滴答.滴答”的報警聲音。并且通過WORD文檔將原理圖畫出來。在整個電路設計完畢并仿真成功后發(fā)現(xiàn),其實整
18、個電路設計實現(xiàn)的功能還是比較實用和易于操作的,而自己也為此付出了許多:從根據(jù)課題要求查找相關資料,學習硬件語言,到自己能夠獨立編寫小程序;從對Max Plus II軟件的摸索,一次次修改程序,到仿真得到較滿意的結果;從對截圖工具的搜索下載,論文資料的搜集,到文字排版的學習。在設計過程中遇到了很多困難,在指導老師的指引和同學的幫助下,通過不斷探索學習,使問題得到了一定的解決。通過本學期課程設計的學習,我從中學習到了很多東西,對可編程邏輯器件,Verilog HDL語言,Max Plus II軟件有了一定的了解,尤其是用Verilog HDL語言編程和仿真。在本次設計中最大的收獲是在不斷地發(fā)現(xiàn)問題
19、,分析問題,解決問題的過程中培養(yǎng)了自己的科研能力,為今后的學習工作做了一個良好的鋪墊。Verilog Hdl語言設計的出現(xiàn)從根本上改變了以往數(shù)字電路的設計模式,使電路設計由硬件設計轉變?yōu)檐浖O計,這樣提高了設計的靈活性,降低了電路的復雜程度,修改起來也很方便。 利用Verilog Hdl設計的靈活性,根據(jù)串行通信協(xié)議的要求,可以在實驗室利用先進的EDA工具,設計出符合自己實際需求的課堂智能響鈴系統(tǒng)。 經(jīng)過三周的設計制作,該設計終于如期開發(fā)完畢,其功能基本上可以滿足處理的需要。 由于時間有限,本系統(tǒng)還有許多不盡人意的地方,需要將來做進一步的改善。這次課程設計,以方便實際操作為基礎,以理論聯(lián)系實際
20、為準則,不斷完善,不斷創(chuàng)新。參考文獻1 張振榮,晉明武等.MCS-51單片機原理及實用技術M.北京:人民郵電出版社,2000.2王金明Verilog HDL程序設計教程北京:人民郵電出版社,2004.13 張亦華,延明,肖冰數(shù)字邏輯設計實驗技術與EDA工具北京:郵電大學出版社 2003.14 潘松,黃繼業(yè)EDA技術實用教程M 北京:科學出版社,2002.105 江國強EDA技術與應用M 北京:電子工業(yè)出版社,2004.8致謝通過為期兩周的課程設計,我順利完成了基于Verilog HDL課堂智能響鈴系統(tǒng)的設計。在這次課程設計中,非常感謝各位老師的指導,在老師的身上學到的不僅僅是知識的層面,更重要
21、的是老師追求知識的熱情,還重要的是老師對學生的尊重和關愛,卻又不失老師本身工作的嚴謹?shù)膽B(tài)度,他的工作作風以及對生活的態(tài)度讓我受益匪淺。我在課程設計中碰到的很多個人困難,老師都能給予很大的體諒與幫助。在設計中遇到的試驗的客觀條件方面,老師也給予最大力度的協(xié)助,讓我有更好的設計學習環(huán)境,在這里,同時感謝在長沙理工大學計算機組成原理實驗室和機房所提供的試驗條件,老師對工作的那份熱情對我們產(chǎn)生了很大的影響,讓我們在遇到困難的時候敢于前進。同樣也感謝同學們的相互幫助,正是因為有了這些,我才能很好的順利的完成我的這次課程設計。附錄:課堂智能響鈴系統(tǒng)設計源程序清單/ 程序名稱:基于Verilog HDL語言
22、的課堂智能響鈴系統(tǒng)設計/ 程序作者:#/ 最后修改日期:2010-12-311) 秒計數(shù)器module second (clk, reset, setmin, enmin, daout); input clk; input reset; input setmin; output enmin; wire enmin; output6:0 daout; wire6:0 daout; reg6:0 count; reg enmin_1; enmin_1為59秒時的進位信號 wire enmin_2; enmin_2由clk調(diào)制后的手動調(diào)分脈沖信號串 assign daout = count ; as
23、sign enmin_2 = (setmin & clk) ; setmin為手動調(diào)分控制信號,高電平有效 assign enmin = (enmin_1 | enmin_2) ; enmin為向分進位信號 always (posedge clk or negedge reset) begin if (reset = 1b0) begin count = 7b0000000 ; 若reset為0,則異步清零 end else begin否則,若clk上升沿到 if (count3:0 = 4b1001) 若個位計時恰好到“1001”即9 begin if (count 8h60) 又若coun
24、t小于16#60#,即60H begin if (count = 7b1011001) 又若已到59D begin enmin_1 = 1b1 ; count = 7b0000000 ; 則置進位為1及count復0 end else未到59D begin count = count + 7 ; 則加7,而+7=+1+6,即作“加6校正” end end else 若count不小于16#60#(即count等于或大于16#60#) begin count = 7b0000000 ; count復0 end end END IF(count16#60#) else if (count 8h60
25、) 若個位計數(shù)未到“1001”則轉此句再判 begin count = count + 1 ; 若count16#60#則count加1 enmin_1 = #100 1b0 ; 沒有發(fā)生進位 end else 否則,若count不小于16#60# begin count = 7b0000000 ; 則count復0 end END IF(count(3 DOWNTO 0)=“1001”) end END IF(reset=0) end endmodule2) 分鐘計數(shù)器module minute (clk, clk1, reset, sethour, enhour, daout); inpu
26、t clk; input clk1; input reset; input sethour; output enhour; wire enhour; output6:0 daout; wire6:0 daout; reg6:0 count; reg enhour_1; enmin_1為59分時的進位信號 wire enhour_2; enmin_2由clk調(diào)制后的手動調(diào)時脈沖信號串 assign daout = count ; assign enhour_2 = (sethour & clk1) ; sethour為手動調(diào)時控制信號,高電平有效 assign enhour = (enhour_
27、1 | enhour_2) ; always (posedge clk or negedge reset) begin if (reset = 1b0) 若reset為0,則異步清零 begin count = 7b0000000 ; end else 否則,若clk上升沿到 begin if (count3:0 = 4b1001) 若個位計時恰好到“1001”即9 begin if (count 8h60) 又若count小于16#60#,即60 begin if (count = 7b1011001) 又若已到59D begin enhour_1 = 1b1 ; 則置進位為1 count
28、= 7b0000000 ; count復0 end else begin count = count + 7 ; 若count未到59D,則加7,即作“加6校正” end 使前面的16#60#的個位轉變?yōu)?421BCD的容量 end else begin count = 7b0000000 ; count復0(有此句,則對無效狀態(tài)電路可自啟動) end END IF(count16#60#) end else if (count 8h60) begin count = count + 1 ; 若count16#60#則count加1 enhour_1 = #100 1b0 ; 沒有發(fā)生進位 e
29、nd else begin count = 7b0000000 ; 否則,若count不小于16#60# count復0 end END IF(count(3 DOWNTO 0)=“1001”) end END IF(reset=0) end endmodule3) 小時計數(shù)器module hour (clk, reset, daout); input clk; input reset; output5:0 daout; wire5:0 daout; reg5:0 count; assign daout = count ; always (posedge clk or negedge rese
30、t) begin if (reset = 1b0) begin count = 6b000000 ; 若reset=0,則異步清零 end else 否則,若clk上升沿到 begin if (count3:0 = 4b1001) 若個位計時恰好到“1001”即9 begin if (count 8h23) 23進制 begin count = count + 7 ; 若到23D則 end else begin count = 6b000000 ; 復0 end end else if (count 8h23) 若未到23D,則count進1 begin count = count + 1 ;
31、 end else 否則清零 begin count = 6b000000 ; end END IF(count(3 DOWNTO 0)=“1001”) end END IF(reset=0) end endmodule4) 整點報時報警模塊 module alert (clk, dain, speak, lamp); input clk; input6:0 dain; output speak; reg speak; output2:0 lamp; reg2:0 lamp; reg1:0 count; reg1:0 count1; always (posedge clk) begin : s
32、peaker speak = 2b10) begin count1 = 2b00 ; count1為三進制加法計數(shù)器 end else begin count1 = count1 + 1 ; end end end always (posedge clk) begin : lamper if (count = 2b10) begin if (count = 2b00) begin lamp = 3b001 ; 循環(huán)點亮三只燈 end else if (count = 2b01) begin lamp = 3b010 ; end else if (count = 2b10) begin lamp
33、 = 3b100 ; end count = count + 1 ; end else begin count = 2b00 ; end end endmodule附錄資料:不需要的可以自行刪除C語言編譯環(huán)境中的調(diào)試功能及常見錯誤提示調(diào)試功能1常用健 : 激活系統(tǒng)菜單: 將光標在編輯窗口和、信息窗口之間切換: 加載一個文件+: 查看程序運行結果: 得到有關編輯器在線幫助+: 得到有關C語言的在線幫助+: 終止正在運行的程序2塊操作 KB: 定義塊首 KK: 定義塊尾 KV: 塊移動 KC: 塊復制 KY: 塊刪除 KH: 取消塊定義3查找、替換和刪除操作 QF: 查找字符串 QA: 查找并替換
34、字符串 Option: G(全程), B(向文件頭), N(直接替換) Y : 刪除一行 QY: 刪除從光標位置到行末的所有字符編譯中的常見錯誤例析(1)警告類錯誤 XXXdeclare but never used 變量XXX已定義但從未用過。 XXXis assigned a value which is never used 變量XXX已賦值但從未用過。 Code has no effect 程序中含有沒有實際作用的代碼。 Non-portable pointer conversion 不適當?shù)闹羔樲D換,可能是在應該使用指針的地方用了一個非0的數(shù)值。 Possible use of XX
35、Xbefore definition 表達式中使用了未賦值的變量 Redeclaration of main 一個程序文件中主函數(shù)main不止一個。 Suspicious pointer conversion 可疑的指針轉換。通常是使用了基本類型不匹配的指針。 Unreachable code 程序含有不能執(zhí)行到的代碼。(2)錯誤或致命錯誤 Compound statement missing in function main 程序結尾缺少括號。 “”expected; “(”expected等 復合語句或數(shù)組初始化的結尾缺少“)”;“(”。 Case outside of switch ca
36、se 不屬于Switch結構,多由于switch結構中的花括號不配對所致。 Case statement missing : switch結構中的某個case之后缺少冒號。 Constant expression required 定義數(shù)組時指定的數(shù)組長度不是常量表達式。 Declaration syntax error 結構體或聯(lián)合類型的定義后缺少分號。 Declaration was expected 缺少說明,通常是因為缺少分界符如逗號、分號、右圓括號等所引起的。 Default outside switch Default部分放到了switch結構之外,一般是因為花括號不匹配而引起的。
37、 do statement must have while do語句中缺少相應的while部分。 Expression syntax 表達式語法錯。如表達式中含有兩個連續(xù)的運算符 Extra parameter in call fun 調(diào)用函數(shù)fun時給出了多余的實參。 Function should return a value 函數(shù)應該返回一個值,否則與定義時的說明類型不匹配。 Illegal use of pointer 指針被非法引用,一般是使用了非法的指針運算。 Invalid pointer addition 指針相加非法。一個指針(地址)可以和一個整數(shù)相加,但兩個指針不能相加。
38、Lvalue required 賦值運算的左邊是不能尋址的表達式。 Misplaced else 程序遇到了沒有配對的else No matching 表達式中的括號不配對。 Pointer required on left side of_ 在“_”運算的左邊只能允許一個指針而不能是一個一般的結構體變量或聯(lián)合類型的變量。 Statement missing; 程序遇到了后面沒有分號的語句。 Too few parameters in call 調(diào)用某個函數(shù)時實參數(shù)目不夠。 Unable to open include file XXXXXXXXXXX 頭文件找不到。 Unexpected 或
39、:或 在不希望的地方使用了或:。 Undefined symbol Xin function fun 函數(shù)fun中的變量X沒有定義。5.連接中的常見錯誤主要錯誤類似于“undefined symbol _print in modula xxx”(print沒有定義),通常是函數(shù)名書寫錯誤。6.運行中的常見錯誤Abnormal program termination 程序異常終止。通常是由于內(nèi)存使用不當所致。Floating point error : Domain 或Divide by 0 運算結果不是一個數(shù)或被0 除Null pointer assignment 對未初始化的指針賦值,程序有
40、嚴重錯誤。User break 在運行程序時終止。7.程序的跟蹤調(diào)試利用Run菜單可以進行程序的跟蹤調(diào)試(1)GO to Cursor ()選擇該選項使程序執(zhí)行到光標所在行首先將光標移到某行(一般為可執(zhí)行),選擇該功能項,則程序執(zhí)行到該行的前一行暫停。此時程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處,此時可以查詢變量或表達式的值。(2)Trace into ()執(zhí)行一條語句或一行暫停此時程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處。該選項可跟蹤到被調(diào)函數(shù)的內(nèi)部。(3)Step over ()執(zhí)行一條語句或一行暫停此時程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處。該選項將自定義函數(shù)當作一個語句執(zhí)行,不
41、跟蹤到函程序的內(nèi)部。(4)Debug 菜單程序處于跟蹤狀態(tài)時,可使用該菜單的選項。其主要是使用Evaluate目的是查詢或更新變量或表達式的值。選擇Evaluate功能后,系統(tǒng)彈出一個對話框。該對話框包含三個選項區(qū)域:Evaluate域可以輸入一個含有目前代碼中(程序暫停區(qū)的作用域)正在使用的變量名、或含變量的表達式、或常量表達式。按回車鍵后,在Result域中顯示變量或表達式的值。還可以用New value域進行調(diào)試。如果調(diào)試程序時發(fā)現(xiàn)Result域顯示的某變量或表達式的值不正確,并能估計出該變量或表達式的值,則可以將該值輸入到New value域,繼續(xù)執(zhí)行程序,其目的是肯定錯誤發(fā)生處是否在
42、當前位置之前。如果輸入這個正確的值并將程序繼續(xù)執(zhí)行完畢而結果正確,說明在目前暫停處之前已經(jīng)發(fā)生錯誤而之后無錯誤。(5)Break/Watch用于設置斷點和監(jiān)視表達式。選擇Add Watch功能選項,系統(tǒng)將彈出一個菜單,在Add Watch框中輸入變量名或表達式,按回車鍵后,系統(tǒng)在屏幕底部開辟一個窗口并顯示 該變量或表達式的值。【常見錯誤信息語句索引】Ambiguous operators need parentheses:不明確的運算需要用括號括起 Ambiguous symbol xxx :不明確的符號 Argument list syntax error:參數(shù)表語法錯誤 Array bou
43、nds missing in function main 缺少數(shù)組界限符 Array bounds missing :丟失數(shù)組界限符 Array size too large :數(shù)組尺寸太大 Bad character in paramenters :參數(shù)中有不適當?shù)淖址?Bad file name format in include directive :包含命令中文件名格式不正確 Bad ifdef directive synatax :編譯預處理ifdef有語法錯 Bad undef directive syntax :編譯預處理undef有語法錯 Bit field too large
44、 :位字段太長 Call of non-function :調(diào)用未定義的函數(shù) Call to function with no prototype :調(diào)用函數(shù)時沒有函數(shù)的說明 Cannot modify a const object :不允許修改常量對象 Case outside of switch :漏掉了case 語句 Case syntax error :Case 語法錯誤 Code has no effect :代碼不可述不可能執(zhí)行到 Compound statement missing :分程序漏掉 Conflicting type modifiers :不明確的類型說明符 Cons
45、tant expression required :要求常量表達式 Constant out of range in comparison :在比較中常量超出范圍 Conversion may lose significant digits :轉換時會丟失意義的數(shù)字 Conversion of near pointer not allowed :不允許轉換近指針 Could not find file xxx :找不到XXX文件 Declaration missing ; :說明缺少; Declaration syntax error :說明中出現(xiàn)語法錯誤 Default outside of
46、 switch :Default 出現(xiàn)在switch語句之外 Define directive needs an identifier :定義編譯預處理需要標識符 Division by zero :用零作除數(shù) Do statement must have while :Do-while語句中缺少while部分 Enum syntax error :枚舉類型語法錯誤 Enumeration constant syntax error :枚舉常數(shù)語法錯誤 Error directive :xxx :錯誤的編譯預處理命令 Error writing output file :寫輸出文件錯誤 Exp
47、ression syntax error :表達式語法錯誤 Extra parameter in call :調(diào)用時出現(xiàn)多余錯誤 File name too long :文件名太長 Function call missing ) :函數(shù)調(diào)用缺少右括號 Fuction definition out of place :函數(shù)定義位置錯誤 Fuction should return a value :函數(shù)必需返回一個值 Goto statement missing label :Goto語句沒有標號 Hexadecimal or octal constant too large :16進制或8進制常
48、數(shù)太大 Illegal character x :非法字符x Illegal initialization :非法的初始化 Illegal octal digit :非法的8進制數(shù)字 Illegal pointer subtraction :非法的指針相減 Illegal structure operation :非法的結構體操作 Illegal use of floating point :非法的浮點運算 Illegal use of pointer :指針使用非法 Improper use of a typedefsymbol :類型定義符號使用不恰當 In-line assembly n
49、ot allowed :不允許使用行間匯編 Incompatible storage class :存儲類別不相容 Incompatible type conversion :不相容的類型轉換 Incorrect number format :錯誤的數(shù)據(jù)格式 Incorrect use of default Default使用不當 Invalid indirection 無效的間接運算 Invalid pointer addition 指針相加無效 Irreducible expression tree 無法執(zhí)行的表達式運算 Lvalue required 需要邏輯值0或非0值 Macro a
50、rgument syntax error 宏參數(shù)語法錯誤 Macro expansion too long 宏的擴展以后太長 Mismatched number of parameters in definition 定義中參數(shù)個數(shù)不匹配 Misplaced break 此處不應出現(xiàn)break語句 Misplaced continue 此處不應出現(xiàn)continue語句 Misplaced decimal point 此處不應出現(xiàn)小數(shù)點 Misplaced elif directive 不應編譯預處理elif Misplaced else 此處不應出現(xiàn)else Misplaced else di
51、rective 此處不應出現(xiàn)編譯預處理else Misplaced endif directive 此處不應出現(xiàn)編譯預處理endif Must be addressable 必須是可以編址的 Must take address of memory location 必須存儲定位的地址 No declaration for function xxx 沒有函數(shù)xxx的說明 No stack 缺少堆棧 No type information 沒有類型信息 Non-portable pointer assignment 不可移動的指針(地址常數(shù))賦值 Non-portable pointer comp
52、arison 不可移動的指針(地址常數(shù))比較 Non-portable pointer conversion 不可移動的指針(地址常數(shù))轉換 Not a valid expression format type 不合法的表達式格式 Not an allowed type 不允許使用的類型 Numeric constant too large 數(shù)值常太大 Out of memory 內(nèi)存不夠用 Parameter xxx is never used 能數(shù)xxx沒有用到 Pointer required on left side of - 符號-的左邊必須是指針 Possible use of xxx before definition 在定義之前就使用了xxx(警告) Possibly incorrect assignment 賦值可能不正確 Redeclaration of xxx 重復定義了xxx Redefinition of xxx is not identical xx的兩次定義不一致 Register allocation fai
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景區(qū)店鋪運營管理辦法
- 安全生產(chǎn)事故隱患泛指
- 擴建工程的安全設施必須與主體工程
- 社區(qū)干部本年度思想和工作總結
- 認知心理學課程體系構建與教學實踐探索
- 泉水蜜桃貯藏保鮮技術影響因素探究
- 安全生產(chǎn)工作總結匯報材料
- 安全生產(chǎn)教育七進
- 教育大數(shù)據(jù)學習行為的深度挖掘
- 安全生產(chǎn)排查表怎么填寫
- 西安高新區(qū)管委會招聘考試真題2024
- 黨史知識競賽試題及答案
- 隧道建設施工進度計劃與工期保證措施
- 車工考評員培訓課件
- 站姿走姿坐姿禮儀培訓
- 小規(guī)模稅務視頻教學課件
- 業(yè)務外包費用管理制度
- 月子中心各部管理制度
- 痛風的康復護理課件
- 公司自供自產(chǎn)品管理制度
- 五育并舉與心理健康教育的融合
評論
0/150
提交評論