【正文】
遇到了編譯錯誤。細心閱讀 max+plus2 錯誤提示和所編寫的程序后發(fā)現(xiàn)是因為 VHDL 語法使用錯誤。最后經(jīng)過翻閱 EDA 課本,熟悉相關(guān)語法后將其改正。2. 搶答器項目設(shè)計規(guī)模過大,與現(xiàn)有 CPLD 芯片不匹配:按照我們最初的設(shè)計方案來設(shè)計的話,搶答器還可以實現(xiàn)計分功能。但是當我們編寫好程序后,一經(jīng)編譯就會出現(xiàn)工程與器件無法適配的問題。查找原因后發(fā)現(xiàn)是因為數(shù)碼管顯示分數(shù)功能占用芯片引腳過多,芯片無法匹配。最終我們在總設(shè)計中去掉了計分功能,從而適配成功。3. 引腳鎖定不完整,最終編譯無法通過:處理了之前出現(xiàn)的幾個問題后,在最后編譯時未通過。細致查看了錯誤提示,發(fā)現(xiàn)是個別管腳未鎖定的原因。我們最終把各個管腳鎖定號碼一一檢查了一遍,從而通過了編譯。本設(shè)計有以下幾個可以改進的地方:,可以使用引腳更多的 CPLD 芯片,即使用課程設(shè)計說明書16更多的數(shù)碼管來實時顯示每個搶答選手的得分情況。2. 現(xiàn)有的聲響提示模塊發(fā)出的提示聲音比較單調(diào),不能滿足現(xiàn)在的搶答比賽要求。通過適當添加幾種語音芯片,就可以讓蜂鳴器在不同的情況下發(fā)出美妙的聲響,能為比賽增添不少樂趣。,還可以使本項目升級為無線智能搶答器。在這次設(shè)計中,我花了不少的時間,其中有苦也有淚??嗟氖俏腋冻隽瞬簧俚暮顾瑯返氖窃诟冻龅倪^程中我得到了許多,也學會了許多。因為一個人的能力畢竟有限,在設(shè)計方面難免會出現(xiàn)這樣那樣的錯誤,但正是這些錯誤促進了我的進步。根據(jù)電路的特點,我用層次化結(jié)構(gòu)化設(shè)計概念,將此項設(shè)計任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,然后再將各模塊合起來聯(lián)試,這培養(yǎng)了我們合作的精神,同時加深了層次化設(shè)計的概念。在這次課程設(shè)計中,我真正體會到了知識的重要性。在設(shè)計的過程中,遇到問題我會先獨立思考,到自己不能解決的時候我就會和同學討論,實在解決不了我就會向指導老師請教,應(yīng)該說從功能的實現(xiàn)到流程圖的繪制,從程序的編寫到程序的檢查,從程序的調(diào)試到實驗報告的寫作,其間每一個過程都凝聚著大家對我的幫助。最后,在設(shè)計的過程中我進一步養(yǎng)成了軟件設(shè)計的方法,完成一個項目的的程序,進一步了解了設(shè)計的步驟,進一步加深了對 EDA 這門課的理解,增強了以后學習的興趣,為以后的工作積累了一定的經(jīng)驗。課程設(shè)計說明書177 參考文獻[1]潘松,黃繼業(yè). EDA 技術(shù)實用教程 .第二版.[M].北京:科學出版社,2022.[2]. [M] 西安:西安電子科技大學出版社, 2022.[3]邊計年,薛宏熙. 用 VHDL 設(shè)計電子線路. 清華大學出版社,2022[4]李偉英, EDA 技術(shù)的搶答器的設(shè)計與實現(xiàn)【 J】.科學技術(shù)與實現(xiàn), (11).[5]譚會生, 技術(shù)綜合應(yīng)用實例與分析 【M】.西安 :西安電子科技大學出版社, 2022.[6]侯伯亨,顧新.VHDL 硬件描述語言與數(shù)字邏輯電路設(shè)計.西安:西安電子科技大學出版社,1997[7]常青,陳輝煌.可變成專用集成電路及其應(yīng)用與設(shè)計實踐經(jīng)驗.北京:國防工業(yè)出版社,1998[8] 張千里,陳光英.網(wǎng)絡(luò)安全新技術(shù)[M] .北京:人民郵電出版社, 2022課程設(shè)計說明書188 附 錄智力搶答器 VHDL 源程序:library ieee。use 。use 。entity qd is port(rst,clk,s,stop:in std_logic。 s0,s1,s2,s3:in std_logic。 states:buffer std_logic_vector(3 downto 0)。 warn:out std_logic。 ta,tb:buffer std_logic_vector(3 downto 0)。 void:out std_logic)。end qd。architecture qd of qd issignal st:std_logic_vector(3 downto 0)。signal co:std_logic。beginq1:process(rst,clk,s0, s1,s2,s3) begin課程設(shè)計說明書19 if rst=39。039。 then void=39。039。st=0000。 elsif clk39。event and clk=39。139。 then if (s0=39。139。 or st(0)=39。139。)and not( st(1)=39。139。 or st(2)=39。139。 or st(3)=39。139。 ) then st(0)=39。139。 end if 。 if (s1=39。139。 or st(1)=39。139。)and not( st(0)=39。139。 or st(2)=39。139。 or st(3)=39。139。 ) then st(1)=39。139。 end if 。 if (s2=39。139。 or st(2)=39。139。)and not( st(0)=39。139。 or st(1)=39。139。 or st(3)=39。139。 ) then st(2)=39。139。 end if 。 if (s3=39。139。 or st(3)=39。139。)and not( st(0)=39。139。 or st(1)=39。139。 or st(2)=39。139。 ) then st(3)=39。139。 end if 。void=s0 or s1 or s2 or s3。end if 。end process q1。q2:process(states(0),states(1),states(2),states(3)) begin if (st=0000) then states=0000。 elsif (st=0001) then states=0001。elsif (st=0010) then states=0010。 elsif (st=0100) then states=0011。elsif (st=1000) then states=0100。 end if。 end process q2。q3:process(clk,rst,s,stop,ta) begin if rst=39。039。 or stop=39。139。 then ta=0000。 elsif clk39。event and clk=39。139。 then co=39。039。 if s=39。139。 then if ta=0000 then ta=1001。co=39。139。 else ta=ta1。 end if。 課程設(shè)計說明書20 end if。 end if。 end process q3。q4:process(co,rst,s,stop,tb) begin if rst=39。039。 or stop=39。139。 then tb=1001。 elsif co39。event and co=39。139。 then if s=39。139。 then if tb=0000 then tb=1000。 else tb=tb1。 end if。 end if。 end if。 end process q4。 q5:process(ta,tb)begin if ta=0000 and tb=0000thenwarn=39。139。else warn=39。039。 end if。 end process q5。end qd。