【正文】
分析: : 由于系統(tǒng)可用單元為 128 宏個單元,所以為了節(jié)約使用量,采取用二進(jìn)制向量來計數(shù),同時用向量特定位的狀態(tài)來作為分頻標(biāo)志,經(jīng)計算可得若定義一個 25位的二進(jìn)制數(shù),則 18 號位的 0、 1 變化可作為 4Hz 的時鐘高低電平變化標(biāo)志,以此類推 19號位可作為 2Hz 的時鐘高低電平變化標(biāo)志, 21號位可作為 的時鐘高低電平的變化標(biāo)志。 : 輸入信號: M_mode:為 2 維向量,由 2 個撥碼開關(guān)控制,共可控制顯 示 4 種狀態(tài), 在此只是用 0011的四種狀態(tài) Auto是自動切換使能鍵 Reset是復(fù)位鍵 C_out為分頻模塊的輸出,作為顯示控制的標(biāo)志。 2) MDS 圖: 輸入控制信號 m_mode 為二維向量,在手動模式下控制顯示的模式 Auto為自動顯示的使能信號 繪出 MDS圖,如下所示: Auto=0,m_mode=00 Auto=0,m_mode=01 Auto=1,m_mode=01 Auto=1,m_mode=00 auto=1,m_mode=10 auto=1,m_mode=11 auto=0,m_mode=11 auto=0,m_mode=10 通過兩個撥碼開關(guān)來 輸入 m_mode 實現(xiàn)狀態(tài)在 A、 B、 C之間的轉(zhuǎn)移控制。 以上部分即通過自頂向下的方法,逐步探求系統(tǒng)的設(shè)計方法。 2. 點陣顯示原理設(shè)計: A B C D 數(shù)字電路與邏輯設(shè)計實驗報告 4 1) 點陣顯示原理分析: 8 8 點陣是由如圖所示的 64 個發(fā)光二極管構(gòu)成的,當(dāng)相應(yīng)二極管的行電平為高電平,列電平為低電平時,二極管導(dǎo)通發(fā)亮,所以 8個列使用一個行驅(qū)動。 為了使點陣能夠在人眼看它的時候呈現(xiàn)出設(shè)計好的圖形,并且亮度均勻,用列信號 (hang)作為選通控制就會亮度均勻,只要保證任何時 刻 只有一位hang 信號為低,其余位都為高即可。 2) 顯示內(nèi)容設(shè)計: ? A狀態(tài):掃描控制電路,光點從左上角像素點開始掃描,終止于右下角像素點,然后周而復(fù)始地重復(fù)下去。 ? B狀態(tài):每次顯示 1 個字符,至少顯示 4 個字符,每秒切換一個字符; 設(shè)計顯示的字符為: EZFHN。 所以,對于 B 狀態(tài),實際上是 4*8=32 個子狀態(tài)間的切換,利用人眼的視覺暫留,在顯示每個字符的 1 秒鐘內(nèi)用高頻掃面這個字符的 8 個子狀態(tài),進(jìn)入下一秒鐘后,同理用高頻掃面這個字符的 8個子狀態(tài)。 ? C 狀態(tài): 顯示一幅動畫 ,令點陣從里到外對稱的顯示四個點,然后全亮,然后在逐漸全暗,然后再重新循環(huán)亮對稱的四個點。 ? D 狀態(tài):顯示一幅滾動圖畫,是一個箭頭從右向左移動,其原理同 【 實驗 源程序】 分頻模塊: library ieee。 use 。 f_reset: in std_logic。 end freq。 begin process(f_clk,f_reset,count) begin if(f_reset=39。)then count=0000000000000000000000000。event and f_clk=39。)then if count=1111111111111111111111111 then count=0000000000000000000000000。 end if。 f_ctrl(9 downto 3) = count(24 downto 18)。 1MHz end process。 各個模式的頻率控制模塊 library ieee。 use 。 c_in: in std_logic_vector(9 downto 0)。 end contr。 signal c_hang: std_logic_vector(2 downto 0):=000。 1Hz, when use chose 84 for ,model139。 4Hz for model139。 1Hz model2 c_hang(2 downto 0)=c_in(2 downto 0)。 4Hz for model3 c_hang(2 downto 0)=c_in(2 downto 0)。 1Hz model2 c_hang(2 downto 0)=c_in(2 downto 0)。 c_out(7 downto 3)=c_lie(4 downto 0)。 end process。 點陣顯示控制模塊 library ieee。 use 。 d_scan: in std_logic_vector(7 downto 0)。 d_lie: out std_logic_vector(7 downto 0))。 architecture d of dianzhen is signal hang: std_logic_vector(7 downto 0):=00000000。 begin process(d_mode,d_scan,lie,hang) 數(shù)字電路與邏輯設(shè)計實驗報告 8 begin if d_mode=00 then case d_scan(2 downto 0) is when 000=hang=01111111。s hang when 001=hang=10111111。 when 011=hang=11101111。 when 101=hang=11111011。 when 111=hang=11111110。 case d_scan(6 downto 4) is when 000=lie=10000000。s lie when 001=lie=01000000。 when 011=lie=00010000。 when 101=lie=00000100。 when 111=lie=00000001。 elsif d_mode=01 then case d_scan(5 downto 0) is when 000000=hang=11111111。 show 39。 when 000001=hang=10111111。 when 000010=hang=11011111。 when 000011=hang=11101111。 when 000100=hang=11110111。 when 00010