版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 《電子設(shè)計自動化》</b></p><p><b> 課程設(shè)計</b></p><p> 題目: 2位十進(jìn)制四則運算器電路 </p><p> 院(系) 信息科學(xué)與工程學(xué)院 </p><p>
2、專 業(yè) 通信工程 </p><p> 屆 別 2011級 </p><p> 班 級 </p><p> 學(xué) 號 </p><p> 姓 名
3、 </p><p> 任課老師 </p><p><b> 摘要</b></p><p> 本設(shè)計是利用EDA技術(shù)實現(xiàn)的2位十進(jìn)制四則運算器,是基于QuartusII7.2軟件,利用其強大、直觀、便捷和操作靈活的原理圖輸入設(shè)計的功能來完成本次設(shè)計的。
4、此設(shè)計利用QuartusII7.2中的EP2C5T144C8芯片來控制整個程序的運行,用七段數(shù)碼管顯示各個輸入和輸出,用LED燈的亮滅來顯示運算模式,而軟件部分則是由VHDL語言來編寫的,是通過精心的設(shè)計和合理的規(guī)劃而完成的設(shè)計。設(shè)計完成后的運算器不僅能實現(xiàn)數(shù)據(jù)的加減乘除運算,而且還能使數(shù)據(jù)及其計算結(jié)果在數(shù)碼管上顯示出來,能夠?qū)崿F(xiàn)0-99的十進(jìn)制數(shù)字四則運算。</p><p><b> 目 錄&l
5、t;/b></p><p> 第一章 系統(tǒng)設(shè)計1</p><p><b> 1.1設(shè)計要求1</b></p><p> 1.2系統(tǒng)設(shè)計方案1</p><p> 1.2.2總體方案的論證2</p><p> 1.2.4各功能塊的劃分和組成3</p><
6、p> 第二章 單元電路設(shè)計4</p><p> 2.1 輸入模塊5</p><p><b> 2.2加法模塊5</b></p><p><b> 2.3減法模塊6</b></p><p><b> 2.4乘法模塊7</b></p><
7、;p> 2.5 除法模塊7</p><p> 2.6 模式選擇模塊8</p><p><b> 2.7輸出模塊8</b></p><p> 第三章 軟件設(shè)計9</p><p> 3.1 軟件設(shè)計平臺、開發(fā)工具和實現(xiàn)方法9</p><p> 3.2程序的流程方框圖9&l
8、t;/p><p> 3.3實現(xiàn)的功能及程序清單10</p><p> 3.3.1百進(jìn)制計數(shù)器10</p><p> 3.3.2四選一數(shù)據(jù)選擇器11</p><p> 3.3.3加法模塊:12</p><p> 3.3.4減法模塊12</p><p> 3.3.5乘法模塊13&
9、lt;/p><p> 3.3.6除法模塊13</p><p> 3.3.7輸出模塊14</p><p> 第四章 系統(tǒng)測試15</p><p> 4.1 功能的測試方法、步驟15</p><p> 4.2 儀器設(shè)備16</p><p> 第五章 結(jié)論16</p>
10、<p><b> 參考文獻(xiàn)17</b></p><p> 附錄A 電路圖圖紙17</p><p> 附錄B 軟件程序21</p><p><b> 第一章 系統(tǒng)設(shè)計</b></p><p><b> 1.1設(shè)計要求</b></p>
11、<p> 輸入兩個2位十進(jìn)制數(shù)(0~99),輸出它們的四則運算(加減乘除)結(jié)果;發(fā)光二極管顯示運算模式;可調(diào)用LPM_MULT及LPM_DIVIDE模塊。 </p><p><b> 1.2系統(tǒng)設(shè)計方案</b></p><p> 1.2.1系統(tǒng)設(shè)計思路</p><p> 通過分析可知,要完成本次課程設(shè)計可以分為三個模塊來實現(xiàn)相
12、應(yīng)的功能,分別是輸入模塊、計算模塊以及輸出模塊。</p><p> 其中各個模塊的任務(wù)要求為:</p><p> * 輸入模塊:輸入兩個2位十進(jìn)制數(shù)以及運算模式的選擇</p><p> * 計算模塊:根據(jù)輸入模塊的選擇完成相應(yīng)的運算過程</p><p> * 輸出模塊:輸出各個輸入及計算結(jié)果</p><p>
13、 1.2.2總體方案的論證</p><p><b> ·方案一:</b></p><p> 根據(jù)功能和指標(biāo)要求,計算器電路包括三個部分:顯示電 路、輸入電路和芯片控制電路。用七段數(shù)碼管作為顯示電路,各作為輸入電路,利用程序輸入法將計算器所需的程序?qū)懭胄酒?。模塊圖如下:</p><p><b> ·方案二
14、:</b></p><p> 根據(jù)計算器的功能要求,計算器電路可包括四個部分:選用LED數(shù)碼管作為顯示部分,各按鍵作為輸入部分,運算模塊,芯片控制部分。模塊圖如下:</p><p> 1.2.3 方案的對比選擇</p><p> 從電路清晰程度來說方案二要優(yōu)于方案一,因為方案二顯示結(jié)果清楚明了,比用方案一的準(zhǔn)確度更高,而且電路分模塊來做,更加清晰,
15、連線相對也比較簡單。所以為了得到更好的結(jié)果,我所以選擇方案二。</p><p> 1.2.4各功能塊的劃分和組成</p><p> 1.2.5 系統(tǒng)的工作原理</p><p> ?。?)由于要設(shè)計的是四則計算器,可以進(jìn)行四則運算, </p><p> 則采用七段數(shù)碼管顯示數(shù)據(jù)和結(jié)果。</p><p> (
16、2)另外鍵盤包括兩個十進(jìn)制數(shù)輸入鍵、一個模式選擇</p><p> 鍵,故只需要3個按鍵即可。</p><p> ?。?)執(zhí)行過程:使能端打開后顯為示零,等待鍵入數(shù)值,</p><p> 當(dāng)鍵入兩個數(shù)字,計算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲,并等</p><p> 待鍵入模式,當(dāng)再鍵入模式后將在數(shù)碼管上顯示運算結(jié)果。</p>&
17、lt;p><b> 單元電路設(shè)計</b></p><p><b> 2.1 輸入模塊</b></p><p><b> 工作原理:</b></p><p> 利用兩個100進(jìn)制的計數(shù)器作為數(shù)字的輸入,通過外接的按鍵來控制計數(shù)器,從而人為的確定輸入的數(shù)值。</p><p
18、><b> 參數(shù)計算:</b></p><p> ①一百進(jìn)制數(shù)輸出最高是99,故需7個字節(jié)才可能將其包含在內(nèi),因此cq的寬度[6..0]。</p><p> ?、贚ED每一位的最高輸出為9,故需4個字節(jié)才可能將其包含在內(nèi),故LED1和LED2的寬度為[3..0]。</p><p><b> 2.2加法模塊</b>
19、;</p><p><b> 工作原理:</b></p><p> 利用VHDL語言來實現(xiàn)兩個2位十進(jìn)制數(shù)的加法,做出一個小加法模塊。又由于其輸出結(jié)果在0—198之間,故要將此小減法模塊將和2個lpm divide1和2個lpm constant0相連,從而使得當(dāng)兩個十進(jìn)制數(shù)輸入后可以在3個LED數(shù)碼管上顯示最終結(jié)果。</p><p>&l
20、t;b> 參數(shù)計算:</b></p><p> ①輸入最高值是99,需7個字節(jié)才可能將其包含在內(nèi),因此add_in1和add_in2的寬度[6..0]。</p><p> ?、谳敵鼋Y(jié)果最高值為3位數(shù),且要將其顯示在LED燈上,則設(shè)置3個輸出,可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到百位數(shù)、十位數(shù)和個位數(shù)。</p><p>
21、; ?、跮ED每一位的最高輸出為9,故add_out1、add_out2和add_out3的寬度為[3..0]。</p><p><b> 2.3減法模塊</b></p><p><b> 工作原理:</b></p><p> 利用VHDL語言來實現(xiàn)兩個2位十進(jìn)制數(shù)的加法,做出一個小減法模塊。又由于其輸出結(jié)果在-99
22、—99之間,故將此小減法模塊將和2個lpm divide1和2個lpm constant0相連,從而使得當(dāng)兩個十進(jìn)制數(shù)輸入后可以在3個LED數(shù)碼管上顯示最終結(jié)果,其中一個LED數(shù)碼管顯示結(jié)果的符號,若為負(fù)數(shù)則符號位出現(xiàn)“F”。</p><p><b> 參數(shù)計算:</b></p><p> ?、佥斎胱罡咧凳?9,需7個字節(jié)才可能將其包含在內(nèi),因此sub_in1和su
23、b_in2的寬度[6..0]。</p><p> ?、谒媒Y(jié)果最高值為2位數(shù),且要將其顯示在LED燈上,則設(shè)置2個數(shù)值輸出,又由于可能出現(xiàn)結(jié)果為負(fù)數(shù)的情況,故又設(shè)一個符號位輸出。可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到十位數(shù)和個位數(shù)。</p><p> ?、跮ED每一位的最高輸出為9,故sub_out1和sub_out2的寬度為[3..0]。</p>
24、<p><b> 2.4乘法模塊</b></p><p><b> 工作原理:</b></p><p> 乘法運算可以直接調(diào)用LPM_MULT的模塊來實現(xiàn)乘法運算。又由于其輸出結(jié)果在0—9801之間,故要將此模塊和4個lpm divide1和4個lpm constant0相連,從而使得當(dāng)兩個十進(jìn)制數(shù)輸入后可以在4個LED數(shù)碼管上顯
25、示最終結(jié)果。</p><p><b> 參數(shù)計算:</b></p><p> ①輸入最高值是99,需7個字節(jié)才可能將其包含在內(nèi),因此dataa和datab的寬度[6..0]。</p><p> ?、谒媒Y(jié)果最高值為4位數(shù),且要將其顯示在LED燈上,則設(shè)置4個數(shù)值輸出,可利用LPM_CONSTANT取10,將輸出的結(jié)果4次模10得到千位數(shù)、百
26、位數(shù)、十位數(shù)和個位數(shù)。</p><p> ?、跮ED每一位的最高輸出為9,故out_mult1、out_mult2、out_mult3和out_mult4的寬度為[3..0]。</p><p><b> 2.5 除法模塊</b></p><p><b> 工作原理:</b></p><p>
27、除法運算可以直接調(diào)用LPM_DIVIDE的模塊來實現(xiàn)除法運算。又由于其輸出結(jié)果在0—99之間,故要將此模塊和2個lpm divide1和2個lpm constant0相連,可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到十位數(shù)和個位數(shù)。</p><p><b> 參數(shù)計算:</b></p><p> ?、佥斎胱罡咧凳?9,需7個字節(jié)才可能將其包含在內(nèi)
28、,因此div_in1和div_in1的寬度[6..0]。</p><p> ?、谒媒Y(jié)果最高值為2位數(shù),且要將其顯示在LED燈上,則設(shè)置2個數(shù)值輸出,可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到商的十位數(shù)和個位數(shù)。</p><p> ?、跮ED每一位的最高輸出為9,故div_out1和div_out2的寬度為[3..0]。</p><p> 2
29、.6 模式選擇模塊</p><p><b> 工作原理:</b></p><p> 由于要在加、減、乘、除四個模式中選擇一個進(jìn)行計算,所以可利用一個四選一的數(shù)據(jù)選擇器來作為模式選擇器,通過一個時鐘信號來改變改變數(shù)據(jù)選擇器從而控制模式選擇。</p><p><b> 2.7輸出模塊</b></p><
30、;p><b> 工作原理:</b></p><p> 將加、減、乘、除各個模塊的輸出和模式選擇的輸出作為輸入,以模式選擇的輸入作為控制信號來控制結(jié)果的輸出。</p><p><b> 參數(shù)計算:</b></p><p> 該模塊的各項輸入是由其他模塊的輸出來決定的,故此模塊的參數(shù)要和之前的模塊參數(shù)一一對應(yīng)。&
31、lt;/p><p><b> 軟件設(shè)計</b></p><p> 3.1 軟件設(shè)計平臺、開發(fā)工具和實現(xiàn)方法</p><p> 在Quartus II平臺中用VHDL語言編寫各個模塊所需要的程序或者調(diào)用Quartus II中原有的模塊并利用原理圖設(shè)計方法完成整個設(shè)計,借助EDA實驗箱進(jìn)行實驗程序的調(diào)試和檢測。</p>&l
32、t;p> 3.2程序的流程方框圖</p><p> 3.3實現(xiàn)的功能及程序清單</p><p> 3.3.1百進(jìn)制計數(shù)器</p><p> 功能:作為兩個2位的十進(jìn)制數(shù)的輸入</p><p><b> 程序:</b></p><p> library ieee;</p>
33、;<p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cnt99 is</p><p> port(clk,rst,en:in std_logic;</p><p> cq: buffer
34、 std_logic_vector(6 downto 0);</p><p> LED1:out std_logic_vector(3 downto 0);</p><p> LED2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> cout:out std_logic);</p><p> en
35、d cnt99;</p><p> architecture behav of cnt99 is</p><p><b> begin</b></p><p> process(clk,rst,en)</p><p> variable cqi:std_logic_vector(3 downto 0);</
36、p><p> variable cqii:std_logic_vector(6 downto 0);</p><p> variable hi:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> if rst ='1' then
37、cqi:=(others =>'0');hi:=(others =>'0');</p><p> elsif clk'event and clk='1' then </p><p> if en ='1' then </p><p> if hi<9 then </
38、p><p> if cqi<9 then cqi:=cqi+1;</p><p> else cqi:=(others=>'0');</p><p><b> hi:=hi+1;</b></p><p><b> end if ;</b></p><
39、;p> else hi:=(others =>'0');</p><p><b> end if;</b></p><p> if cqii<99 then cqii:=cqii+1;</p><p> else cqii:=(others=>'0');</p>&l
40、t;p><b> end if ;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> if(cqi=9 and hi=9) then cout<='1';</p><p
41、> else cout<='0'; </p><p><b> end if ;</b></p><p><b> cq<=cqii;</b></p><p><b> LED1<=hi;</b></p><p> LED2&l
42、t;=cqi;</p><p> end process;</p><p> end behav;</p><p> 3.3.2四選一數(shù)據(jù)選擇器</p><p><b> 功能:選擇運算模式</b></p><p><b> 程序:</b></p>&
43、lt;p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY jinzhi4 IS</p><p> PORT (CLK,RST,EN : IN STD_LO
44、GIC; </p><p> CQ : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p> COUT : OUT STD_LOGIC ); </p><p> END jinzhi4;</p><p> ARCHITECTURE
45、behav OF jinzhi4 IS</p><p><b> BEGIN</b></p><p> PROCESS(CLK, RST, EN)</p><p> VARIABLE CQI : STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p><b> BEGIN<
46、/b></p><p> IF RST = '1' THEN CQI := (OTHERS =>'0') ; ELSIF CLK'EVENT AND CLK='1' THEN </p><p> IF EN = '1' THEN
47、 </p><p> CQI := CQI + 1;</p><p><b> END IF;</b></p><p> END IF; </p><p> IF CQI = 0 THEN COUT <= '1'; </p><p> ELSE CO
48、UT <= '0';</p><p><b> END IF;</b></p><p> CQ <= CQI; </p><p> END PROCESS;</p><p> END behav;</p><p> 3.3.3加法模塊:</p>
49、<p><b> 功能:進(jìn)行加運算</b></p><p><b> 原理圖:</b></p><p><b> 3.3.4減法模塊</b></p><p><b> 功能:進(jìn)行減法運算</b></p><p><b>
50、原理圖:</b></p><p><b> 3.3.5乘法模塊</b></p><p><b> 功能:進(jìn)行乘法運算</b></p><p><b> 原理圖:</b></p><p><b> 3.3.6除法模塊</b></p&
51、gt;<p><b> 功能:進(jìn)行除法運算</b></p><p><b> 原理圖:</b></p><p><b> 3.3.7輸出模塊</b></p><p><b> 功能:控制輸出結(jié)果</b></p><p><b&g
52、t; 程序:</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY size_mod IS</p><p>
53、; PORT(mod_sel: IN STD_LOGIC_vector(1 downto 0); </p><p> add_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> add_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> add_out3: I
54、N STD_LOGIC_vector(3 downto 0);</p><p> flag: IN STD_LOGIC;</p><p> sub_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> sub_out2: IN STD_LOGIC_vector(3 downto 0);</p>&
55、lt;p> mul_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> mul_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> mul_out3: IN STD_LOGIC_vector(3 downto 0);</p><p> mul_out4: I
56、N STD_LOGIC_vector(3 downto 0);</p><p> div_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> div_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> outmod: out std_logic_vector(3 d
57、ownto 0);</p><p> outLED1: out STD_LOGIC_vector(3 downto 0);</p><p> outLED2: out STD_LOGIC_vector(3 downto 0); </p><p> outLED3: out STD_LOGIC_vector(3 downto 0);</p>
58、;<p> outLED4: out STD_LOGIC_vector(3 downto 0)); </p><p> END size_mod;</p><p> ARCHITECTURE bhv OF size_mod IS</p><p><b> BEGIN</b></p><
59、p> process(mod_sel)</p><p><b> begin</b></p><p> case mod_sel is</p><p> when "00" => outmod<="1000"; outLED1<=(others=> '0
60、9;);outLED2<=add_out1(3 downto 0);outLED3<=add_out2; outLED4<=add_out3;</p><p> when "01" => outmod<="0100"; outLED1<=(others=> '0');outLED2<=(others=>
61、(not flag));outLED3<=sub_out1(3 downto 0); outLED4<=sub_out2;</p><p> when "10" => outmod<="0010"; outLED1<=mul_out1(3 downto 0);outLED2<=mul_out2;outLED3<=mul_out3;
62、 outLED4<=mul_out4;</p><p> when others => outmod<="0001"; outLED1<=(others=> '0');outLED2<=(others=> '0');outLED3<=div_out1(3 downto 0); outLED4<=div_ou
63、t2;</p><p><b> end case;</b></p><p> end process;</p><p><b> end bhv;</b></p><p><b> 第四章 系統(tǒng)測試</b></p><p> 4.1 功能的測
64、試方法、步驟</p><p><b> 軟件部分:</b></p><p> 1、將寫好的的程序先進(jìn)行編譯</p><p> 2、編譯通過后,利用波形仿真來觀察結(jié)果是否正確。</p><p> 3、采用模式5進(jìn)行分配管腳后,再進(jìn)行編譯</p><p> 4、將編譯通過的程序下載到EDA實
65、驗箱上進(jìn)行硬件驗證。</p><p><b> 硬件部分</b></p><p><b> 選擇模式5進(jìn)行測試</b></p><p> 利用多邦線將en接vcc,rst接gnd</p><p> 根據(jù)管腳的分配(鍵1—clk1、鍵2—clk2,鍵3—clk3),按鍵1和鍵2來改變輸入值,
66、按鍵3改變運算模式。比如:當(dāng)按鍵1和鍵2輸入38和47,則可在數(shù)碼管上顯示85,按鍵3改變加法、減法、乘法、除法模式。當(dāng)模式為減法時,其結(jié)果為“F9”;當(dāng)模式為乘法時,其結(jié)果為1786;當(dāng)模式為除法模式時,其結(jié)果為0. </p><p><b> 4.2 儀器設(shè)備</b></p><p> EDA技術(shù)實驗箱 </p><p>
67、PC機(帶有quartus軟件)</p><p><b> 第五章 結(jié)論</b></p><p> 本次設(shè)計完成了設(shè)計的基本要求,即隨機輸入兩個2位數(shù),可進(jìn)行該兩個數(shù)的四則運算并且輸出相應(yīng)的結(jié)果。同時也掌握了用VHDL語言來設(shè)計四則運算的基本要求,加深了對軟件的了解。</p><p><b> 參考文獻(xiàn)</b>&l
68、t;/p><p> 潘松,黃繼業(yè).EDA技術(shù)與VHDL語言.第三版.北京:清華大學(xué)出版社.2011.</p><p><b> 附錄A 電路圖圖紙</b></p><p><b> 總系統(tǒng)電路圖紙</b></p><p> 乘法模塊電路圖除法模塊電路圖</p><p>
69、<b> 附錄B 軟件程序</b></p><p><b> 小加法模塊程序:</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL
70、;</p><p> entity cal4_add is</p><p> port(add_in1, add_in2: in std_logic_vector(6 downto 0);</p><p> add_out: out std_logic_vector(7 downto 0));</p><p> end e
71、ntity cal4_add;</p><p> architecture beh of cal4_add is</p><p> signal a1: std_logic_vector(7 downto 0);</p><p> signal a2: std_logic_vector(7 downto 0);</p><p>
72、signal a3: std_logic_vector(7 downto 0);</p><p><b> begin</b></p><p> process(add_in1, add_in2)</p><p><b> begin</b></p><p> a1<='0&
73、#39;&add_in1;</p><p> a2<='0'&add_in2;</p><p> a3 <= a2+a1;</p><p> add_out<=a3;</p><p> end process;</p><p> end architectur
74、e beh;</p><p><b> 小減法模塊程序:</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>
75、 entity size_sub is</p><p> port(sub_in1, sub_in2: in std_logic_vector(6 downto 0);</p><p> flag: out std_logic;</p><p> sub_out: out std_logic_vector(6 downto 0));<
76、/p><p> end entity size_sub;</p><p> architecture beh of size_sub is</p><p><b> begin</b></p><p> process(sub_in1, sub_in2)</p><p><b>
77、begin</b></p><p> if sub_in1>sub_in2 then</p><p> flag <= '1';sub_out <= sub_in1-sub_in2;</p><p><b> else</b></p><p> flag <=
78、 '0';sub_out <= sub_in2-sub_in1;</p><p><b> end if;</b></p><p> end process;</p><p> end architecture beh;</p><p><b> 百進(jìn)制計數(shù)器程序:</b&
79、gt;</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cnt99 is</p><p> port(clk,rst,e
80、n:in std_logic;</p><p> cq: buffer std_logic_vector(6 downto 0);</p><p> LED1:out std_logic_vector(3 downto 0);</p><p> LED2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>
81、; cout:out std_logic);</p><p> end cnt99;</p><p> architecture behav of cnt99 is</p><p><b> begin</b></p><p> process(clk,rst,en)</p><p>
82、 variable cqi:std_logic_vector(3 downto 0);</p><p> variable cqii:std_logic_vector(6 downto 0);</p><p> variable hi:std_logic_vector(3 downto 0);</p><p><b> begin</b>
83、</p><p> if rst ='1' then cqi:=(others =>'0');hi:=(others =>'0');</p><p> elsif clk'event and clk='1' then </p><p> if en ='1' t
84、hen </p><p> if hi<9 then </p><p> if cqi<9 then cqi:=cqi+1;</p><p> else cqi:=(others=>'0');</p><p><b> hi:=hi+1;</b></p><p
85、><b> end if ;</b></p><p> else hi:=(others =>'0');</p><p><b> end if;</b></p><p> if cqii<99 then cqii:=cqii+1;</p><p> el
86、se cqii:=(others=>'0');</p><p><b> end if ;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> if(cqi=9 and hi
87、=9) then cout<='1';</p><p> else cout<='0'; </p><p><b> end if ;</b></p><p><b> cq<=cqii;</b></p><p><b> LED
88、1<=hi;</b></p><p> LED2<=cqi;</p><p> end process;</p><p> end behav;</p><p><b> 四選一選擇器程序:</b></p><p> LIBRARY IEEE;</p>
89、<p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY jinzhi4 IS</p><p> PORT (CLK,RST,EN : IN STD_LOGIC; </p&g
90、t;<p> CQ : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p> COUT : OUT STD_LOGIC ); </p><p> END jinzhi4;</p><p> ARCHITECTURE behav OF jinzhi4 IS</p>&l
91、t;p><b> BEGIN</b></p><p> PROCESS(CLK, RST, EN)</p><p> VARIABLE CQI : STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p><b> BEGIN</b></p><p> IF R
92、ST = '1' THEN CQI := (OTHERS =>'0') ; </p><p> ELSIF CLK'EVENT AND CLK='1' THEN IF EN = '1' THEN </p><p>
93、 CQI := CQI + 1;</p><p><b> END IF;</b></p><p> END IF; </p><p> IF CQI = 0 THEN COUT <= '1'; </p><p> ELSE COUT <= '0';<
94、/p><p><b> END IF;</b></p><p> CQ <= CQI; </p><p> END PROCESS;</p><p> END behav;</p><p><b> 輸出模塊程序:</b></p><
95、p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY size_mod IS</p><p> PORT(mod_sel: IN STD_LOGIC_
96、vector(1 downto 0); </p><p> add_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> add_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> add_out3: IN STD_LOGIC_vector(3 downto 0);&l
97、t;/p><p> flag: IN STD_LOGIC;</p><p> sub_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> sub_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> mul_out1: IN STD_LOGIC
98、_vector(3 downto 0);</p><p> mul_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> mul_out3: IN STD_LOGIC_vector(3 downto 0);</p><p> mul_out4: IN STD_LOGIC_vector(3 downto 0);&l
99、t;/p><p> div_out1: IN STD_LOGIC_vector(3 downto 0);</p><p> div_out2: IN STD_LOGIC_vector(3 downto 0);</p><p> outmod: out std_logic_vector(3 downto 0);</p><p> o
100、utLED1: out STD_LOGIC_vector(3 downto 0);</p><p> outLED2: out STD_LOGIC_vector(3 downto 0); </p><p> outLED3: out STD_LOGIC_vector(3 downto 0);</p><p> outLED4: out STD_
101、LOGIC_vector(3 downto 0)); </p><p> END size_mod;</p><p> ARCHITECTURE bhv OF size_mod IS</p><p><b> BEGIN</b></p><p> process(mod_sel)</p>
102、<p><b> begin</b></p><p> case mod_sel is</p><p> when "00" => outmod<="1000"; outLED1<=(others=> '0');outLED2<=add_out1(3 downto
103、 0);outLED3<=add_out2; outLED4<=add_out3;</p><p> when "01" => outmod<="0100"; outLED1<=(others=> '0');outLED2<=(others=>(not flag));outLED3<=sub_out1(
104、3 downto 0); outLED4<=sub_out2;</p><p> when "10" => outmod<="0010"; outLED1<=mul_out1(3 downto 0);outLED2<=mul_out2;outLED3<=mul_out3; outLED4<=mul_out4;</p>
105、<p> when others => outmod<="0001"; outLED1<=(others=> '0');outLED2<=(others=> '0');outLED3<=div_out1(3 downto 0); outLED4<=div_out2;</p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計之2位十進(jìn)制四則運算器電路四則運算器
- eda課程設(shè)計--2位十進(jìn)制四則運算器電路
- eda課程設(shè)計--2位十進(jìn)制四則運算器電路
- 1 四則運算 2、四則混合運算(有括號)
- 課程設(shè)計 長整數(shù)四則運算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--《十進(jìn)制表達(dá)式四則運算》
- 課程設(shè)計 長整數(shù)四則運算
- 分?jǐn)?shù)四則運算習(xí)題
- 二進(jìn)制的四則運算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—十進(jìn)制四則運算計算器的設(shè)計與實現(xiàn)
- 大整數(shù)的四則運算課程設(shè)計
- 簡單四則運算計算器
- 四則運算練習(xí)題
- 小學(xué)四則運算500道
- 四則運算規(guī)律及其簡便運算
- 實驗一 復(fù)數(shù)四則運算
- 小型四則運算程序講解
- 匯編語言課程設(shè)計--四則運算計算器
- 極限四則運算法則
- 四則運算專項練習(xí)題
評論
0/150
提交評論