版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《電子設(shè)計(jì)自動(dòng)化》</b></p><p><b> 課程設(shè)計(jì)</b></p><p> 題目: 2位十進(jìn)制四則運(yùn)算器電路 </p><p> 院(系) 信息科學(xué)與工程學(xué)院 </p><p>
2、專 業(yè) 通信工程 </p><p> 屆 別 2011級(jí) </p><p> 班 級(jí) </p><p> 學(xué) 號(hào) </p><p> 姓 名
3、 </p><p> 任課老師 </p><p><b> 摘要</b></p><p> 本設(shè)計(jì)是利用EDA技術(shù)實(shí)現(xiàn)的2位十進(jìn)制四則運(yùn)算器,是基于QuartusII7.2軟件,利用其強(qiáng)大、直觀、便捷和操作靈活的原理圖輸入設(shè)計(jì)的功能來(lái)完成本次設(shè)計(jì)的。
4、此設(shè)計(jì)利用QuartusII7.2中的EP2C5T144C8芯片來(lái)控制整個(gè)程序的運(yùn)行,用七段數(shù)碼管顯示各個(gè)輸入和輸出,用LED燈的亮滅來(lái)顯示運(yùn)算模式,而軟件部分則是由VHDL語(yǔ)言來(lái)編寫的,是通過(guò)精心的設(shè)計(jì)和合理的規(guī)劃而完成的設(shè)計(jì)。設(shè)計(jì)完成后的運(yùn)算器不僅能實(shí)現(xiàn)數(shù)據(jù)的加減乘除運(yùn)算,而且還能使數(shù)據(jù)及其計(jì)算結(jié)果在數(shù)碼管上顯示出來(lái),能夠?qū)崿F(xiàn)0-99的十進(jìn)制數(shù)字四則運(yùn)算。</p><p><b> 目 錄&l
5、t;/b></p><p> 第一章 系統(tǒng)設(shè)計(jì)1</p><p><b> 1.1設(shè)計(jì)要求1</b></p><p> 1.2系統(tǒng)設(shè)計(jì)方案1</p><p> 1.2.2總體方案的論證2</p><p> 1.2.4各功能塊的劃分和組成3</p><
6、p> 第二章 單元電路設(shè)計(jì)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è)計(jì)9</p><p> 3.1 軟件設(shè)計(jì)平臺(tái)、開發(fā)工具和實(shí)現(xiàn)方法9</p><p> 3.2程序的流程方框圖9&l
8、t;/p><p> 3.3實(shí)現(xiàn)的功能及程序清單10</p><p> 3.3.1百進(jìn)制計(jì)數(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)測(cè)試15</p><p> 4.1 功能的測(cè)試方法、步驟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è)計(jì)</b></p><p><b> 1.1設(shè)計(jì)要求</b></p>
11、<p> 輸入兩個(gè)2位十進(jìn)制數(shù)(0~99),輸出它們的四則運(yùn)算(加減乘除)結(jié)果;發(fā)光二極管顯示運(yùn)算模式;可調(diào)用LPM_MULT及LPM_DIVIDE模塊。 </p><p><b> 1.2系統(tǒng)設(shè)計(jì)方案</b></p><p> 1.2.1系統(tǒng)設(shè)計(jì)思路</p><p> 通過(guò)分析可知,要完成本次課程設(shè)計(jì)可以分為三個(gè)模塊來(lái)實(shí)現(xiàn)相
12、應(yīng)的功能,分別是輸入模塊、計(jì)算模塊以及輸出模塊。</p><p> 其中各個(gè)模塊的任務(wù)要求為:</p><p> * 輸入模塊:輸入兩個(gè)2位十進(jìn)制數(shù)以及運(yùn)算模式的選擇</p><p> * 計(jì)算模塊:根據(jù)輸入模塊的選擇完成相應(yīng)的運(yùn)算過(guò)程</p><p> * 輸出模塊:輸出各個(gè)輸入及計(jì)算結(jié)果</p><p>
13、 1.2.2總體方案的論證</p><p><b> ·方案一:</b></p><p> 根據(jù)功能和指標(biāo)要求,計(jì)算器電路包括三個(gè)部分:顯示電 路、輸入電路和芯片控制電路。用七段數(shù)碼管作為顯示電路,各作為輸入電路,利用程序輸入法將計(jì)算器所需的程序?qū)懭胄酒?。模塊圖如下:</p><p><b> ·方案二
14、:</b></p><p> 根據(jù)計(jì)算器的功能要求,計(jì)算器電路可包括四個(gè)部分:選用LED數(shù)碼管作為顯示部分,各按鍵作為輸入部分,運(yùn)算模塊,芯片控制部分。模塊圖如下:</p><p> 1.2.3 方案的對(duì)比選擇</p><p> 從電路清晰程度來(lái)說(shuō)方案二要優(yōu)于方案一,因?yàn)榉桨付@示結(jié)果清楚明了,比用方案一的準(zhǔn)確度更高,而且電路分模塊來(lái)做,更加清晰,
15、連線相對(duì)也比較簡(jiǎn)單。所以為了得到更好的結(jié)果,我所以選擇方案二。</p><p> 1.2.4各功能塊的劃分和組成</p><p> 1.2.5 系統(tǒng)的工作原理</p><p> ?。?)由于要設(shè)計(jì)的是四則計(jì)算器,可以進(jìn)行四則運(yùn)算, </p><p> 則采用七段數(shù)碼管顯示數(shù)據(jù)和結(jié)果。</p><p> (
16、2)另外鍵盤包括兩個(gè)十進(jìn)制數(shù)輸入鍵、一個(gè)模式選擇</p><p> 鍵,故只需要3個(gè)按鍵即可。</p><p> ?。?)執(zhí)行過(guò)程:使能端打開后顯為示零,等待鍵入數(shù)值,</p><p> 當(dāng)鍵入兩個(gè)數(shù)字,計(jì)算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等</p><p> 待鍵入模式,當(dāng)再鍵入模式后將在數(shù)碼管上顯示運(yùn)算結(jié)果。</p>&
17、lt;p><b> 單元電路設(shè)計(jì)</b></p><p><b> 2.1 輸入模塊</b></p><p><b> 工作原理:</b></p><p> 利用兩個(gè)100進(jìn)制的計(jì)數(shù)器作為數(shù)字的輸入,通過(guò)外接的按鍵來(lái)控制計(jì)數(shù)器,從而人為的確定輸入的數(shù)值。</p><p
18、><b> 參數(shù)計(jì)算:</b></p><p> ?、僖话龠M(jìn)制數(shù)輸出最高是99,故需7個(gè)字節(jié)才可能將其包含在內(nèi),因此cq的寬度[6..0]。</p><p> ?、贚ED每一位的最高輸出為9,故需4個(gè)字節(jié)才可能將其包含在內(nèi),故LED1和LED2的寬度為[3..0]。</p><p><b> 2.2加法模塊</b>
19、;</p><p><b> 工作原理:</b></p><p> 利用VHDL語(yǔ)言來(lái)實(shí)現(xiàn)兩個(gè)2位十進(jìn)制數(shù)的加法,做出一個(gè)小加法模塊。又由于其輸出結(jié)果在0—198之間,故要將此小減法模塊將和2個(gè)lpm divide1和2個(gè)lpm constant0相連,從而使得當(dāng)兩個(gè)十進(jìn)制數(shù)輸入后可以在3個(gè)LED數(shù)碼管上顯示最終結(jié)果。</p><p>&l
20、t;b> 參數(shù)計(jì)算:</b></p><p> ?、佥斎胱罡咧凳?9,需7個(gè)字節(jié)才可能將其包含在內(nèi),因此add_in1和add_in2的寬度[6..0]。</p><p> ?、谳敵鼋Y(jié)果最高值為3位數(shù),且要將其顯示在LED燈上,則設(shè)置3個(gè)輸出,可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到百位數(shù)、十位數(shù)和個(gè)位數(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語(yǔ)言來(lái)實(shí)現(xiàn)兩個(gè)2位十進(jìn)制數(shù)的加法,做出一個(gè)小減法模塊。又由于其輸出結(jié)果在-99
22、—99之間,故將此小減法模塊將和2個(gè)lpm divide1和2個(gè)lpm constant0相連,從而使得當(dāng)兩個(gè)十進(jìn)制數(shù)輸入后可以在3個(gè)LED數(shù)碼管上顯示最終結(jié)果,其中一個(gè)LED數(shù)碼管顯示結(jié)果的符號(hào),若為負(fù)數(shù)則符號(hào)位出現(xiàn)“F”。</p><p><b> 參數(shù)計(jì)算:</b></p><p> ?、佥斎胱罡咧凳?9,需7個(gè)字節(jié)才可能將其包含在內(nèi),因此sub_in1和su
23、b_in2的寬度[6..0]。</p><p> ②所得結(jié)果最高值為2位數(shù),且要將其顯示在LED燈上,則設(shè)置2個(gè)數(shù)值輸出,又由于可能出現(xiàn)結(jié)果為負(fù)數(shù)的情況,故又設(shè)一個(gè)符號(hào)位輸出??衫肔PM_CONSTANT取10,將輸出的結(jié)果2次模10得到十位數(shù)和個(gè)位數(shù)。</p><p> ③LED每一位的最高輸出為9,故sub_out1和sub_out2的寬度為[3..0]。</p>
24、<p><b> 2.4乘法模塊</b></p><p><b> 工作原理:</b></p><p> 乘法運(yùn)算可以直接調(diào)用LPM_MULT的模塊來(lái)實(shí)現(xiàn)乘法運(yùn)算。又由于其輸出結(jié)果在0—9801之間,故要將此模塊和4個(gè)lpm divide1和4個(gè)lpm constant0相連,從而使得當(dāng)兩個(gè)十進(jìn)制數(shù)輸入后可以在4個(gè)LED數(shù)碼管上顯
25、示最終結(jié)果。</p><p><b> 參數(shù)計(jì)算:</b></p><p> ?、佥斎胱罡咧凳?9,需7個(gè)字節(jié)才可能將其包含在內(nèi),因此dataa和datab的寬度[6..0]。</p><p> ?、谒媒Y(jié)果最高值為4位數(shù),且要將其顯示在LED燈上,則設(shè)置4個(gè)數(shù)值輸出,可利用LPM_CONSTANT取10,將輸出的結(jié)果4次模10得到千位數(shù)、百
26、位數(shù)、十位數(shù)和個(gè)位數(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、除法運(yùn)算可以直接調(diào)用LPM_DIVIDE的模塊來(lái)實(shí)現(xiàn)除法運(yùn)算。又由于其輸出結(jié)果在0—99之間,故要將此模塊和2個(gè)lpm divide1和2個(gè)lpm constant0相連,可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到十位數(shù)和個(gè)位數(shù)。</p><p><b> 參數(shù)計(jì)算:</b></p><p> ?、佥斎胱罡咧凳?9,需7個(gè)字節(jié)才可能將其包含在內(nèi)
28、,因此div_in1和div_in1的寬度[6..0]。</p><p> ②所得結(jié)果最高值為2位數(shù),且要將其顯示在LED燈上,則設(shè)置2個(gè)數(shù)值輸出,可利用LPM_CONSTANT取10,將輸出的結(jié)果2次模10得到商的十位數(shù)和個(gè)位數(shù)。</p><p> ?、跮ED每一位的最高輸出為9,故div_out1和div_out2的寬度為[3..0]。</p><p> 2
29、.6 模式選擇模塊</p><p><b> 工作原理:</b></p><p> 由于要在加、減、乘、除四個(gè)模式中選擇一個(gè)進(jìn)行計(jì)算,所以可利用一個(gè)四選一的數(shù)據(jù)選擇器來(lái)作為模式選擇器,通過(guò)一個(gè)時(shí)鐘信號(hào)來(lái)改變改變數(shù)據(jù)選擇器從而控制模式選擇。</p><p><b> 2.7輸出模塊</b></p><
30、;p><b> 工作原理:</b></p><p> 將加、減、乘、除各個(gè)模塊的輸出和模式選擇的輸出作為輸入,以模式選擇的輸入作為控制信號(hào)來(lái)控制結(jié)果的輸出。</p><p><b> 參數(shù)計(jì)算:</b></p><p> 該模塊的各項(xiàng)輸入是由其他模塊的輸出來(lái)決定的,故此模塊的參數(shù)要和之前的模塊參數(shù)一一對(duì)應(yīng)。&
31、lt;/p><p><b> 軟件設(shè)計(jì)</b></p><p> 3.1 軟件設(shè)計(jì)平臺(tái)、開發(fā)工具和實(shí)現(xiàn)方法</p><p> 在Quartus II平臺(tái)中用VHDL語(yǔ)言編寫各個(gè)模塊所需要的程序或者調(diào)用Quartus II中原有的模塊并利用原理圖設(shè)計(jì)方法完成整個(gè)設(shè)計(jì),借助EDA實(shí)驗(yàn)箱進(jìn)行實(shí)驗(yàn)程序的調(diào)試和檢測(cè)。</p>&l
32、t;p> 3.2程序的流程方框圖</p><p> 3.3實(shí)現(xiàn)的功能及程序清單</p><p> 3.3.1百進(jìn)制計(jì)數(shù)器</p><p> 功能:作為兩個(gè)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> 功能:選擇運(yùn)算模式</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)行加運(yùn)算</b></p><p><b> 原理圖:</b></p><p><b> 3.3.4減法模塊</b></p><p><b> 功能:進(jìn)行減法運(yùn)算</b></p><p><b>
50、原理圖:</b></p><p><b> 3.3.5乘法模塊</b></p><p><b> 功能:進(jìn)行乘法運(yùn)算</b></p><p><b> 原理圖:</b></p><p><b> 3.3.6除法模塊</b></p&
51、gt;<p><b> 功能:進(jìn)行除法運(yù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)測(cè)試</b></p><p> 4.1 功能的測(cè)
64、試方法、步驟</p><p><b> 軟件部分:</b></p><p> 1、將寫好的的程序先進(jìn)行編譯</p><p> 2、編譯通過(guò)后,利用波形仿真來(lái)觀察結(jié)果是否正確。</p><p> 3、采用模式5進(jìn)行分配管腳后,再進(jìn)行編譯</p><p> 4、將編譯通過(guò)的程序下載到EDA實(shí)
65、驗(yàn)箱上進(jìn)行硬件驗(yàn)證。</p><p><b> 硬件部分</b></p><p><b> 選擇模式5進(jìn)行測(cè)試</b></p><p> 利用多邦線將en接vcc,rst接gnd</p><p> 根據(jù)管腳的分配(鍵1—clk1、鍵2—clk2,鍵3—clk3),按鍵1和鍵2來(lái)改變輸入值,
66、按鍵3改變運(yùn)算模式。比如:當(dāng)按鍵1和鍵2輸入38和47,則可在數(shù)碼管上顯示85,按鍵3改變加法、減法、乘法、除法模式。當(dāng)模式為減法時(shí),其結(jié)果為“F9”;當(dāng)模式為乘法時(shí),其結(jié)果為1786;當(dāng)模式為除法模式時(shí),其結(jié)果為0. </p><p><b> 4.2 儀器設(shè)備</b></p><p> EDA技術(shù)實(shí)驗(yàn)箱 </p><p>
67、PC機(jī)(帶有quartus軟件)</p><p><b> 第五章 結(jié)論</b></p><p> 本次設(shè)計(jì)完成了設(shè)計(jì)的基本要求,即隨機(jī)輸入兩個(gè)2位數(shù),可進(jìn)行該兩個(gè)數(shù)的四則運(yùn)算并且輸出相應(yīng)的結(jié)果。同時(shí)也掌握了用VHDL語(yǔ)言來(lái)設(shè)計(jì)四則運(yùn)算的基本要求,加深了對(duì)軟件的了解。</p><p><b> 參考文獻(xiàn)</b>&l
68、t;/p><p> 潘松,黃繼業(yè).EDA技術(shù)與VHDL語(yǔ)言.第三版.北京:清華大學(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)制計(jì)數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)之2位十進(jìn)制四則運(yùn)算器電路四則運(yùn)算器
- eda課程設(shè)計(jì)--2位十進(jìn)制四則運(yùn)算器電路
- eda課程設(shè)計(jì)--2位十進(jìn)制四則運(yùn)算器電路
- 課程設(shè)計(jì) 長(zhǎng)整數(shù)四則運(yùn)算
- 1 四則運(yùn)算 2、四則混合運(yùn)算(有括號(hào))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--《十進(jìn)制表達(dá)式四則運(yùn)算》
- 課程設(shè)計(jì) 長(zhǎng)整數(shù)四則運(yùn)算
- 分?jǐn)?shù)四則運(yùn)算習(xí)題
- 二進(jìn)制的四則運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—十進(jìn)制四則運(yùn)算計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
- 大整數(shù)的四則運(yùn)算課程設(shè)計(jì)
- 簡(jiǎn)單四則運(yùn)算計(jì)算器
- 四則運(yùn)算練習(xí)題
- 小學(xué)四則運(yùn)算500道
- 四則運(yùn)算規(guī)律及其簡(jiǎn)便運(yùn)算
- 實(shí)驗(yàn)一 復(fù)數(shù)四則運(yùn)算
- 小型四則運(yùn)算程序講解
- 匯編語(yǔ)言課程設(shè)計(jì)--四則運(yùn)算計(jì)算器
- 極限四則運(yùn)算法則
- 四則運(yùn)算專項(xiàng)練習(xí)題
評(píng)論
0/150
提交評(píng)論