【正文】
nd if。 when 001=outbcd=S_100ms。 when 101=outbcd=M_10min。use 。 clk:in std_logic 。 clr:in std_logic。 end ponent。 S_100ms:in std_logic_vector(3 downto 0)。signal c,e:std_logic。u3:mulx port map(clr,clk,e,ms10_s,ms100_s,s1_s,s10_s,min1_s,min10_s,bcd_s,seg)??偨Y開始VHDL語言不是很熟練,做設計時總是會犯一些錯誤且花費的時間比較多,例如在做頂層文件設計的時候總是會出現(xiàn)一些編譯錯誤,其中有些錯誤是因為一個字母沒寫對而導致,相比較來說在此次設計中用原理圖做頂層設計似乎更容易,當然這主要是我們做的這個小設計不是一個大型的系統(tǒng),當系統(tǒng)復雜時用VHDL語言更省事,在編程時,我們使用了自頂向下的設計思想,這樣程序檢查起來也比較方便,也便于小組分工,做EDA設計考驗我們的耐心、毅力和細心,而對錯誤的檢查要求我們要有足夠的耐心,通過這次實戰(zhàn),我們對VHDL語言了解的更深了,也積累了一定的解決問題的經驗,對以后從事集成電路設計工作會有一定的幫助。五:設計分工說明1, 主程序設計,編寫實驗報告——易新會2, 程序修改,用VHDL語言頂層文件設計——陳虹余3, 上機硬件調試,用原理圖的方法設計頂層文件——王偉4, 收集相關資料、拍照——迪拉熱仿真結果與分析一:測試數據選擇 測試數據選擇為00:00:00——03:56:38二:波形分析三:問題說明 數碼管的顯示由sel片選信號來控制。u1:cb10 port map(clk,c)。 seg:out std_logic_vector(2 downto 0))。 en:in std_logic。 M_1min:out std_logic_vector(3 downto 0)。 end ponent。end stopwatch。end art。 when 100=outbcd=M_1min。then case count is when 000=outbcd=S_10ms。 else count=count+1。139。 S_10s:in std_logic_vector(3 downto 0)。use 。 use 。begin U1:cdu10 port map (clk,clr,en,A,S_10ms)。 : out std_logic。 S_10ms:out std_logic_vector(3 downto 0)。 count6=temp。 =39。 =39。entity cdu6 is port(clk,clr,en: in std_logic。 end if。139。139。 use 。event) then if counter=49999 then counter=0。use 。 elsif clk39。 then next_state=s3。139。if sp=39。039。use 。在整個秒表中最關鍵是如何獲得一個精確的100Hz計時脈沖,除此之外,整個秒表還需要一個啟動信號和一個歸零信號,以便能夠隨時啟動及停止。 en:out std_logic)。 then next_state=s1。else next_state=s2。end if。 end case。 then current_state=next_state。end cb10。 end if。 : out std_logic。039。139。 end process。