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

正文內(nèi)容

基于可編程邏輯器件的dds設(shè)計_畢業(yè)設(shè)計論文任務(wù)書(編輯修改稿)

2025-08-14 15:30 本頁面
 

【文章內(nèi)容簡介】 比, VHDL 具有更強的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。就目前流行的 EDA 工具和 VHDL 綜合器而言,將基于抽象的行為描述風(fēng)格的 VHDL 程序綜合成為具體的 FPGA 和 CPLD 等目標(biāo)器件的網(wǎng)表文件己不成問題。 頻率控制 頻率控制用于對基準(zhǔn)頻率的改變 ,以控制 DDS 發(fā)生信號的頻率。為了更直觀的看到當(dāng)前頻率 ,本文 采用 直接 采集頻率輸 出 到數(shù)碼管顯示 。 頻率控制原理 當(dāng)基準(zhǔn) 頻率輸入時 ,分頻器實現(xiàn)了頻率的變化 ,以下 程序 實現(xiàn)了基準(zhǔn)頻率的 116 分頻。頻率的變化由外圍的四個按鍵開關(guān)控制 ,當(dāng)按鍵值為 00001111(按鍵按下為 1) ,可實現(xiàn)基準(zhǔn)頻率的 116 分頻。具體實現(xiàn)程序 如下 : LIBRARY IEEE。 USE 。 USE 。 ENTITY fenpinqi is PORT ( iclk : IN STD_LOGIC。 key:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 oclk : OUT STD_LOGIC)。 END fenpinqi。 ARCHITECTURE one OF fenpinqi IS signal clk_i :std_logic。 SIGNAL count :STD_LOGIC_VECTOR(3 DOWNTO 0) 。 BEGIN PROCESS (iclk) BEGIN IF iclk39。EVENT AND iclk=39。139。 THEN IF count =key THEN count =0000。 clk_i= not clk_i。 ELSE count = count +1。 END IF。 END IF。 END PROCESS。 oclk= clk_i。 END one。 生成的模塊如圖 41: 13 圖 41 注 : ICLK;輸入基準(zhǔn)頻率, OCLK: 輸出頻率, KEY:按鍵控制分頻,為四位二進(jìn)制數(shù)。 仿真 的時序圖 如圖 : 圖 42 說明:當(dāng)按鍵顯示為 0001 時,輸出頻率是基準(zhǔn)頻率的二分之一, 實現(xiàn)二分頻。 當(dāng)為 0010時,頻率為基準(zhǔn)的三分之一,實現(xiàn)三分頻。 以此按鍵就能實現(xiàn)分頻了, 直至十六分頻 為止 。 頻率采集原理 為了采集即時頻率 ,本文 專門產(chǎn)生一個秒信號 ,用來計錄 脈沖個數(shù)。脈沖計數(shù)用八 位十進(jìn)制計數(shù)器 ,計數(shù)器在 START 置一時, 秒信號的計數(shù)脈沖數(shù)清零同時計數(shù)器清零 ,當(dāng) STARE置零時秒信號與計數(shù)器同時開始工 作。當(dāng)一秒時間到時 ( STOP 為 1 ) 計數(shù)器把數(shù)據(jù)送出去以供顯示。具體實現(xiàn)程序如下 , 頻率采集 程序: library ieee。 use 。 use 。 entity selec is port( num1,num2,num3,num4,num5,num6,num7,num8:out std_logic_vector(3 downto 0)。 stop:in std_logic。 start: in std_logic。 reset: in std_logic。 clk:in std_logic)。 14 end selec。 architecture dacc of selec is signal q1,q2,q3,q4,q5,q6,q7,q8: std_logic_vector(3 downto 0)。 signal tem1,tem2,tem3,tem4,tem5,tem6,tem7,tem8: std_logic_vector(3 downto 0)。 begin process(clk,start,reset) begin if start=39。139。or reset = 39。139。 then q1=0000。q2=0000。q3=0000。q4=0000。q5=0000。q6=0000。q7=0000。 elsif clk39。event and clk=39。139。 then if q1=1001 then q1=0000。 if q2=1001 then q2=0000。 if q3=1001 then q3=0000。 if q4=1001 then q4=0000。 if q5=1001 then q5=0000。 if q6=1001 then q6=0000。 if q7=1001 then q7=0000。 if q8=1001 then q8=0000。 else q8=q8+1。 end if。 else q7=q7+1。 end if。 else q6=q6+1。 end if。 else q5=q5+1。 end if。 else q4=q4+1。 end if。 else q3=q3+1。 end if。 else q2=q2+1。 end if。 else q1=q1+1。 end if。 end if。 end process。 process(stop) begin if stop=39。139。then tem1=q1。 tem2=q2。 tem3=q3。 tem4=q4。 tem5=q5。 tem6=q6。 tem7=q7。 tem8=q8。 end if。 end process。 num1=tem1。 num2=tem2。 num3=tem3。 num4=tem4。 num5=tem5。 num6=tem6。 num7=tem7。 num8=tem8。 end dacc。 程序說明:當(dāng) reset 或 start 為 1 時,計數(shù)器 q1q8 清零,然后開始計數(shù),當(dāng)秒信號計數(shù)結(jié)束標(biāo)志位 stop 為 1 時停止計數(shù),此時把當(dāng)前的計數(shù)值保存到寄存器中,以備顯示用。 秒信號產(chǎn)生程序: use library ieee。 。 15 use 。 use 。 entity second is port( clk : in std_logic。 start : in std_logic。 reset :in std_logic。 stop : out std_logic)。 end second。 architecture dacc of second is signal q: integer range 0 to 100。 signal tem: std_logic。 begin process(clk,reset,start) begin if (reset=39。139。)or(reset=39。039。and start=39。139。) then q=0。 elsif clk39。event and clk=39。139。then if q=100 then tem=39。139。 else q=q+1。 tem=39。039。 end if。 end if。 end process。 stop=tem。 end architecture。 程序說明: reset 為復(fù)位信號, start 為另一次秒信號的開始標(biāo)志。當(dāng) reset 為 1 或者當(dāng) start為 1 時計數(shù)信號清零。開始秒信號的計數(shù),當(dāng)計數(shù)個數(shù)到達(dá)預(yù)定的 100 時使 stop(秒結(jié)束標(biāo)志位)信號置 1。 再重新開始計數(shù)。 程序生成模塊 下圖所示 43: 生成的 頻率采集模塊: 生成的 秒信號模塊: 圖 43 頻率采集模塊時序仿真圖 如圖 44: 16 圖 44 A 說明 : 由圖可知, 當(dāng) stop 置 1 時, num1 至 num8 就會把脈沖個數(shù)送 進(jìn)寄存器,而當(dāng) stop為 0 時,內(nèi)部計數(shù), 此時寄存器內(nèi)保存的是上一個秒內(nèi)的計數(shù)值 。 秒信號 時序仿真圖 如圖 45: 圖 44B 分析 :上圖顯示的是 reset(復(fù)位信號 )為 1 時, q(計數(shù)信號 )清零,即重新開始計數(shù)。 直到 reset或 start 為 1 停止計數(shù) 。 17 圖 44C 說明: stop 信號為秒計數(shù)結(jié)束信號,置 1 時,表示計時到,當(dāng)計數(shù)信號計數(shù)到預(yù)定個數(shù)(根據(jù)基準(zhǔn)頻率而定) ,此仿真圖為了檢測程序的正確,以 1100011 為例進(jìn)行仿真,stop 信號值 1,此時應(yīng)該使 記當(dāng)前頻率時鐘脈沖個數(shù)的計數(shù)器停止計數(shù)。并采集當(dāng)前計數(shù) 值。 圖 44D 說明: 當(dāng) start 信號為 1 時,開始下一秒的計數(shù),并重新開始采集頻率個數(shù)。 數(shù)碼顯示數(shù)據(jù)處理 數(shù)碼顯示 的數(shù)據(jù)為采集的頻率值。采集的是十進(jìn)制數(shù) ,所以需要把它們轉(zhuǎn)換成段顯信號。 由于 設(shè)計 中采用了閃爍點亮 二極管的方式 ,所以還需要對位選進(jìn)行處理。 數(shù)碼位選信號 數(shù)碼位選信號是用 對當(dāng)前工作數(shù)碼管與當(dāng)前顯示數(shù)據(jù)進(jìn)行選擇 ,由于本文 采用八位數(shù)碼管 ,所以需要產(chǎn)生三位二進(jìn)制數(shù)。具體實現(xiàn)程序如下 : library ieee。 use 。 use 。 entity regist is port( num1,num2,num3,num4,num5,num6,num7,num8:in std_logic_vector(3 downto 0)。 start: out std_logic。 stop: in std_logic。 numb:out std_logic_vector(3 downto 0)。 sec:in std_logic_vector(2 downto 0))。 end。 architecture dacc of regist is signal temp: std_logic_vector(3 downto 0)。 signal tem: std_logic。 begin process(sec,stop) 18 begin if stop = 39。139。then tem=39。139。 case sec is when 000 =temp=num1。 when 001 =temp=num2。 when 010 =temp=num3。 when 011 =temp=num4。 when 100 =temp=num5。 when 101 =temp=num6。 when 110 =temp=num7。 when 111 =temp=num8。 when others=null。 end case。 else temp=0000。 tem=39。039。 end if。 end process。 numb=temp。 start=tem。 end dacc。 生成模塊 如圖 45: 圖 45 時序 仿真結(jié)果如圖 46 所示。 圖 46 說明:隨著脈沖的到來,可以實現(xiàn)位選信號 sec 從 0 到 7 的變化, sec 的變化經(jīng)譯碼器可產(chǎn)生只有一位為零的低電平信號。 譯碼 19 由于我們采集的頻率值為十進(jìn)制 數(shù)所以我們需要把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制段顯信號。具體轉(zhuǎn)換見程序如下所示:
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1