freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

用vhdl設(shè)計led漢字滾動顯示器畢業(yè)設(shè)計(編輯修改稿)

2025-07-10 07:39 本頁面
 

【文章內(nèi)容簡介】 else t=t+1; end if; if(t =t39。high1)then flag_scan=39。139。; else flag_scan=39。039。; 圖 滾動顯示多漢字信息的原理示意圖 西南石油大學(xué)本科畢業(yè)設(shè)計(論文) 8 end if; end if; end process; process(reset_n, clk_scan, t) begin if(reset_n=39。039。)then scan=ZZZZZ; elsif(rising_edge(clk_scan))then case t is when 0 = scan = 00000; when 1 = scan = 00001; ?? when 30 = scan = 11110; when 31 = scan = 11111; when others = scan = ZZZZZ; end case; end if; end process; process(reset_n, clk_scan, t, x) 列數(shù)據(jù)的輸出 variable index: integer range 0 to L_SZ; begin if(reset_n=39。039。)then data=0000000000000000; elsif(rising_edge(clk_scan))then index: =((t+x) mod L_SZ); data=ledsj(index); end if; end process; 用 VHDL設(shè)計 LED漢字滾動顯示 器 9 滾動速度的控制 將 LED 點陣看成一個滑窗。通過這個“滑窗”每次能“看到” 32 個存儲單元( 2個漢字長度)的信息。只讀存儲器 ROM 中鏈式的存放了若干個漢 字的點陣信息,“滑窗”在這若干個漢字點陣信息上面滑動,我們通過“滑窗”看到的就是漢字的滾動顯示。 在 用 VHDL 編程的時候, 可以 定義一個變量 x 作為“滑窗” 在 ROM 上 的起始地址,設(shè)計一個進程按一定的頻率對 x 進行累加,再設(shè)計一個進程將以 x 為起始地址的長度為 32 的 ROM 中的區(qū)域動態(tài)顯示在 LED 點陣中。顯然 x 累加的速度決定了漢字的滾動速度。 關(guān)鍵部分的 VHDL 程序: process(reset_n, clk_scan, flag_scan) x 的控制進程 variable tx: integer range 0 to 50; begin if(reset_n=39。039。)then tx: =0; x=0; elsif(rising_edge(clk_scan))then if(flag_scan=39。139。)then if(tx=n8 or tx=tx39。high)then 通過 n 來控制 tx 的計數(shù)范圍 tx: =0; else tx: =tx+1; end if; if(tx=n8)then 通過 n 來控制 x 的增加 if(x=x39。high)then x=0; else x=x+1; end if; end if; 西南石油大學(xué)本科畢業(yè)設(shè)計(論文) 10 end if; end if; end process; 此進程根據(jù) 定義的 信號 n 來控制 x 遞增的速度, n 由外部的按鍵控制。 n 的范圍為 0~7 代表了漢字的不同的滾動速度。當(dāng) n 為 0 時漢字滾動的速度最快 , n 為 7 時LED 點陣上顯示的漢字靜止 。 存儲模塊 使用參數(shù)化組件 LPM_ROM 來實現(xiàn) 為提高系統(tǒng)的集成 度 , 本設(shè)計將點陣顯示的圖像數(shù)據(jù)庫建立在 EPF10K10 的片內(nèi) ROM 中。 Flex10k10 中共有 3 個嵌入式數(shù)組塊 (EAB), 每塊大小均為 2k, 可構(gòu)成2048 1, 1024 2, 512 4, 256 8 等 4 種類型 RAM/ROM 中的任意一種。更大容量的內(nèi)存可由多個 EAB 組合在一起。例如兩個 256 8 的 ROM 塊可組成一個 25616 的 ROM,兩個 512 4 的 ROM 塊可組合成一個 512 8 的 ROM,如果需要,可以將 所有的 EAB 級聯(lián)成一個 RAM/ROM。級聯(lián)是 QuartusII 軟件自動完成的。 本 設(shè)計可以選擇 2048 16 的結(jié)構(gòu) , 用來構(gòu)成一個能保存 128 個漢字的只讀存儲器 ROM。在 FPGA 中建立片內(nèi)只讀存儲器 ROM, 是通過使用美國 Altera 公司的 EDA工具軟件 QuartusII, 并調(diào)用其中的參數(shù)化組件 LPM_ROM 來實現(xiàn)的。具體步驟是 ,圖 Symbol 對話框 用 VHDL設(shè)計 LED漢字滾動顯示 器 11 首先在 MAXPLUSII 的圖形編輯器中雙擊空白處 , 便會出現(xiàn)如圖 所示的“ Symbol”對話框。點擊該對話框的“ Mega Wizard PlugIn Manager”按鈕 , 并在出現(xiàn)的對話框中選擇 storage LPM_ROM , 就 會 出 現(xiàn) 如 圖 所 示 的 “ Mega Wizard PlugInManagerLMP ROM” 系列對話框。在該系列對話框中設(shè)置輸出數(shù)據(jù)線寬度 為11,存儲單元的數(shù)量為 2048。并完成相應(yīng)的配置環(huán)節(jié)就獲得了要求的 256 字節(jié)的只讀存儲器 ROM。只讀存儲器 ROM 中的初始化數(shù)據(jù)就是本系統(tǒng)的 漢字 數(shù)據(jù)庫數(shù)據(jù)。 該初始化數(shù)據(jù)的建立是在上述的 LMP_ROM 設(shè)計過程中通過指定一個后綴名為 .mif 的初始化 文件 來實現(xiàn)的。該 文件 是設(shè)計者事先在文本編輯器中建立的 , 其VHDL 格式和關(guān)鍵代碼示意如下 : WIDTH=16; ——— 數(shù)據(jù)線的寬 度為 16 位 DEPTH=2048; ——— 有 2048 個字節(jié)存儲單元 , 對應(yīng) 11 根地址線寬度 ADDRESS RADIX=HEX; ——— 以 16 進制表示 DATA RADIX = HEX; CONTENTBEGIN 00 : 2f; ——— 以 16 進制表示的 ROM 內(nèi)的各字節(jié)單元的地址和保存的數(shù)據(jù) 01 : 6c; 02 : f8; 圖 “ MegaWizard Pluglin Manager_LMP ROM”對話框 西南石油大學(xué)本科畢業(yè)設(shè)計(論文) 12 ?? fd : ee; fe : 72; ff : 00; END; 用 FPGA內(nèi)部的邏輯單元設(shè)計一個 ROM 本系統(tǒng) 也 可以定義一個常數(shù)數(shù)組來存儲漢字信息。數(shù)組的下標對映 ROM的地 址。下面是一個容量為 L_SZ 16 的 ROM 內(nèi)存的例子,常數(shù) L_SZ 決定了 ROM 的地址空間, ROM 的每一個數(shù)據(jù)單元存儲 16 位數(shù)據(jù),可以很方便的驅(qū)動 16 16 的 LED 點陣。定義這個 ROM 的時侯必須初始化全部存儲單元。 type array_2 is array(0 to L_SZ)of std_logic_vector(15 downto 0); constant ledsj: array_2: =( (0010000000000000), (0010001111111111), ?? ?? (0010001000000000), (0000000000000000)); 兩種方案存儲漢字信息,以及輸出數(shù)據(jù)驅(qū)動 LED 點陣的原理和相差不大,第一種方案是利用了 FPGA 芯片中的嵌入式數(shù)組塊,可以生成大容量的 ROM 來存儲較多的漢字信息。第二中方案生成的 ROM 容量受到了 FPGA 芯片內(nèi)部邏輯單元數(shù)量的限制,但是它的操作性更好。由于本系統(tǒng)只是驗證可行性的一個設(shè)計,不需要建立大的字庫所以采用第二種方案。 用 VHDL設(shè)計 LED漢字滾動顯示 器 13 4 分頻電路 解決毛刺 FPGA 與單片機相比,一個非常明 顯 的優(yōu)勢就在于它的高速性。但是因為 很多外圍器件的驅(qū)動需要低頻的時鐘(若時鐘頻率太高,則鍵盤掃描容易出錯,數(shù)碼管會閃爍和不穩(wěn)定等),所以需要用到分頻電路。 該電路主要包含有一個計數(shù)器模塊和一個 譯碼 輸出模塊,該電路是通過計數(shù)器模塊實現(xiàn)分頻的。 比如 要從 12MHz 的全局時鐘得到 100Hz 的時鐘,必須進行 120210倍分頻。 但是 這么大的分頻需要仿真時間很久。仿真是一般采用小的分頻來替代,真正下載到電路上時,就需要采用 120210 分頻了。 值的注意的是 譯碼器 的輸 入采用 了寄存器鎖存輸出,這是為了消除毛刺。多輸入的組合邏輯電路中,默寫輸入信號在理想情況下應(yīng) 該同時發(fā)生變化,但由于延遲路徑不同造成這些輸入信號發(fā)生變化的時間有 微小 差別(門延遲時間量級),這是得到的是輸出信號就會有毛刺,這些毛刺有可能會給下一 級 電路帶來,使得整個系統(tǒng)運行不穩(wěn)定。因此,為保證系統(tǒng)的穩(wěn)健性,一般情況下,都應(yīng)該給輸出信號去毛刺,使之變得干凈。在設(shè)計中, 譯碼 的輸入是計數(shù)器的輸出,計數(shù)器 各級 輸出延遲是不一樣的,因此譯碼器輸出 clk_scan 信號波形就會有毛刺 (如圖 ) 。 改變輸入信號消除毛刺 為了消除毛刺帶來的影響,可以 設(shè)法使得組合邏輯電路的輸入每一時刻只有 一個發(fā)生變化。對于本電路可以把計數(shù)器從二進制碼計數(shù)器改為格雷碼計數(shù)器。格雷碼計數(shù)器的特 點 是相鄰的 計數(shù)值 只有一位不相同,即每次 計數(shù)值 改變時,只有一位信號會發(fā)生變化。這一點就可以保證沒有毛刺產(chǎn)生。 圖 沒有消除毛刺的仿真結(jié)果 西南石油大學(xué)本科畢業(yè)設(shè)計(論文) 14 通過 D 觸發(fā)器 消除毛刺 把 有毛刺的信號 通過 時鐘采樣,即通過一個 D 觸發(fā)器 也可以消除毛刺 。本設(shè)計就是使用這種方法。這種方法的缺點是信號通過一個 D 觸發(fā)器后,就延遲了一個時鐘周期。對于本設(shè)計這種延遲是允許的,然而在有些電路中延遲是不允許的。該電路的仿真結(jié)果如圖 所示。 關(guān)鍵部分 VHDL 程序 process(clk) 計數(shù)模塊 begin if(rising_edge(clk))then if(tx=480)then tx=0; else tx=tx+1; end if; end if; end process; process(t, clk) 譯碼輸出 begin if(rising_edge(clk))then 寄存器鎖存輸出,以消除毛刺 if(t=t39。high/2)then clk_scan=39。139。; else clk_scan=39。039。; 圖 消除毛刺后的仿真結(jié)果 用 VHDL設(shè)計 LED漢字滾動顯示 器 15 end if; end if; end process; 圖 為分頻電路生成的元件符號。 圖 分頻電路的元件符號 西南石油大學(xué)本科畢業(yè)設(shè)計(論文) 16 5 按鍵掃描電路 直接式 /矩陣式按鍵 數(shù)字系統(tǒng)中,常用的按鍵有直接式和矩陣式兩種。直接式按鍵十分簡單,一端接地 ,一端接 FPGA 的 I/O 口(設(shè)為輸入)。當(dāng)按鍵按下時,此接口為高電平,通過對I/O 口電平的檢測就可知按鍵是否按下。其優(yōu)點是簡單、易行,連接方便,但每個按鍵要 占用一個 I/O 口,如果系統(tǒng)中需要很多按鍵,那么用這種方法會占用大量的 I/O口。而矩陣式鍵盤控制比直接式按鍵要麻煩得多,但其優(yōu)點也是很明顯的,即節(jié)省 I/O口。設(shè)矩陣式鍵盤有 m 行 n 列,則鍵盤上有( m n)個按鍵,而它只需要占用( m+n)個 I/O 口。當(dāng)需要很多按鍵時,用矩陣式鍵盤顯然比直接式按鍵要合理得多。
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦