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

正文內(nèi)容

基于fpga的數(shù)字頻率計(jì)設(shè)計(jì)論文-文庫(kù)吧

2025-02-06 09:22 本頁(yè)面


【正文】 端接受計(jì)數(shù)器溢出脈沖在其上升沿置 1,當(dāng)控制器核心開始換檔工作時(shí),通過(guò) CLR 清除 OFREGISTER。其功能表 4。 表 4 控制器功能表 CONTROL_CORE 模塊是控制 器的核心,有六個(gè)輸入端口:時(shí)序脈沖 CLK、清零脈沖 CLR、復(fù)位脈沖 RESET、溢出檢測(cè)輸入 OF、計(jì)數(shù)器輸出第 4 位 IN3[3:0]和 IN4[3: 0]。輸出端口四個(gè):鎖存器工作脈沖 LATCH_CLK、 OFREGISTER 清零脈沖 CLROF、鎖存器狀態(tài) LATCH_STAT[1: 0]和當(dāng)前檔位狀態(tài) STAT[1: 0]。另外還有寄存器 stat_reg[1: 0],用在轉(zhuǎn)換檔位時(shí)臨時(shí)保存檔位。 count 寄存器,用來(lái)標(biāo)志當(dāng)前工作脈沖序號(hào)。 flag 寄存器,用來(lái)標(biāo)志當(dāng)前計(jì)數(shù)置溢出或不夠。 reset_reg寄存器,用來(lái)標(biāo)志復(fù)位 周期。下面根據(jù)時(shí)序圖簡(jiǎn)要介紹一下工作過(guò)程。 圖 4 控制器仿真時(shí)序圖 由上述介紹我們知道有三種情況能到達(dá) 0T 狀態(tài):計(jì)數(shù)結(jié)束、計(jì)數(shù)中溢出和復(fù)位。這個(gè)時(shí)候就需要檢測(cè)。 RESET 信號(hào)在上升沿將 reset_reg 置為 1,并進(jìn)行復(fù)位操作,即狀態(tài)寄存器分別置值。在 1T 時(shí)刻第工作脈沖到來(lái)時(shí),首先檢測(cè)是不是復(fù)位周期,是則跳過(guò),不作任何動(dòng)作。不是,則檢測(cè) OF 端口是否為 1,為 1 則有溢出,要進(jìn)行換檔, flag 標(biāo)志置 1,并發(fā)出 OFREGISTER 清零信號(hào) CLROF,沒(méi)有溢輸入 輸出 CLK CLR OF 1 0 出,則檢測(cè)計(jì)數(shù)器最高兩位,兩位均為 0,則說(shuō)明檔位不夠,要調(diào)低檔位, flag 標(biāo)志置 2,如果不均為 0,則該計(jì)數(shù)值有效, flag 置為 0; 當(dāng) 2T 脈沖到來(lái)時(shí),檢測(cè)是否是復(fù)位周期,是則跳過(guò),不是則繼續(xù)。如果 flag= 1,有溢出,向上換檔,如果當(dāng)前檔位為 3,則保持,并且將鎖存器置位 (顯示1FFFF),否則向上調(diào)一擋; 如果 flag= 2,檔位不夠,當(dāng)當(dāng)前檔位為 0 時(shí),保持,否則向下調(diào)一擋。 flag= 0,計(jì)數(shù)有效,發(fā)出鎖存器時(shí)鐘脈沖 LATCH_CLK, 將當(dāng)前計(jì)數(shù)值打入鎖存器。當(dāng) 3T 脈沖到來(lái)時(shí),清除中間狀態(tài)寄存器。當(dāng) 4T 脈沖到來(lái)時(shí),在其下降沿將 stat_reg的內(nèi)容打入 STAT,在下一次高電平到來(lái)之前實(shí)現(xiàn)檔位轉(zhuǎn)換。具體源程序如下: module control_core(clk, clr, reset, of, IN3, IN4, counter_clrn, latch_clk, clrof, latch_stat, stat)。 input clk, reset, of, clr。 input[3:0] IN3, IN4。 output counter_clrn, latch_clk, clrof。 reg counter_clrn, latch_clk, clrof, reset_reg。 output[1:0] latch_stat, stat。 reg[1:0] latch_stat, stat, flag, count, stat_reg。 always @(posedge clk or posedge reset or posedge clr) begin if(reset) begin //復(fù)位脈沖 latch_stat = 1。 stat_reg = 0。 counter_clrn = 1。 count = 0。 flag = 0。 clrof = 1。 reset_reg = 1。 end else if(clr) begin //清零信號(hào) T4 flag = 0。 count = 0。 end else if(count == 0) begin //T1 脈沖 count = count + 1。 if(reset_reg == 0) begin //非復(fù)位周期 counter_clrn = 0。 latch_clk = 0。 latch_stat = 0。 stat_reg = stat。 if(of == 1) begin //有溢出 clrof = 1。 flag = 1。 end else if(of == 0) begin //沒(méi)有溢出 if((IN3 == 0) amp。amp。 (IN4 == 0)) begin //檔位不夠 flag = 2。 end else if((IN3) || (IN4)) begin //計(jì)數(shù)有效 flag = 0。 end end end end else if(count == 1) begin //T2 脈沖 count = count + 1。 if(reset_reg == 0) begin // 非復(fù)位周期 clrof = 0。 if(flag == 1) begin // 溢出 if(stat_reg == 3) begin // 已經(jīng)在最高檔 latch_stat = 2。 //鎖存器置位 end else begin //向上調(diào)檔 stat_reg = stat_reg + 1。 latch_stat = latch_stat。 end end else if(flag == 2) begin //檔位不夠 latch_stat = latch_stat。 if(stat_reg == 0) begin //當(dāng)前在最 低檔 stat_reg = 0。 //檔位保持 end else begin stat_reg = stat_reg 1。 //向下調(diào)檔 end end else begin latch_clk = 1。 //計(jì)數(shù)有效,鎖存 end end end else if(count == 2) begin //T3 脈沖 flag = 0。 latch_clk = 0。 count = 0。 reset_reg = 0。 end end always @(negedge clr) begin stat = stat_reg。 //T4 下降沿打入 STAT end endmodule 第四章 誤差分析及改進(jìn) 經(jīng)過(guò)下載測(cè)試,實(shí)際的測(cè)量誤差在 1~ 2 檔時(shí),誤差在 1 310? ~ 4 310? 數(shù)量級(jí),在 3~ 4 檔時(shí),誤差相對(duì)大一些,一般> 4 310? ,這是由于計(jì)數(shù)分頻時(shí)計(jì)數(shù)值為近似值造成的系統(tǒng)誤 差。 另外,在高檔位向低檔位轉(zhuǎn)換時(shí),會(huì)產(chǎn)生第一次測(cè)量不準(zhǔn)的現(xiàn)象,尤其是在第一檔上特別明顯。經(jīng)過(guò)分析,我發(fā)現(xiàn)這是我的這種分頻器結(jié)構(gòu)所特有的。因?yàn)槿齻€(gè)分頻器是并行獨(dú)立計(jì)數(shù)分頻,因此無(wú)法保證換檔時(shí)各個(gè)分頻器狀態(tài)同步,解決方案是改進(jìn)分頻器,采用統(tǒng)一結(jié)構(gòu)。具體程序見(jiàn)附錄。 實(shí)驗(yàn)中采用的 CPU 式的指令周期結(jié)構(gòu)是不錯(cuò)的,保證了系統(tǒng)的穩(wěn)定性和快速響應(yīng),但是由于剛剛接觸,設(shè)計(jì)的時(shí)候邏輯、時(shí)序設(shè)計(jì)不夠簡(jiǎn)潔,很多地方還有待改進(jìn)。 附錄 分頻器 1s module freqcer_1024(clk, trigger, reset, out_gate, out_clr, out_trigger)。 input clk, trigger, reset。 output out_gate, out_clr, out_trigger。 reg out_gate, out_clr, out_trigger。 reg[10:0] counter。 always @(posedge clk or posedge trigger) begin if(trigger) begin counter = 1023。 end else if(reset) begin counter = 1032。 out_trigger = 0。 out_clr = 0。 out_gate = 0。 end else if(counter = 1023) begin out_trigger = 0。 out_gate = 1。 out_clr = 0。 counter = counter + 1139。b00000000001。 end else if((counter = 1024) amp。amp。 (counter = 1031)) begin if((counter == 1025) || (counter == 1027) || (counter == 1029)) out_trigger = 1。 else if(counter == 1031) out_clr = 1。 else begin out_clr = 0。 out_trigger = 0。 end out_gate = 0。 counter = counter + 1。 end else if(counter = 1032) begin counter = 0。 out_gate = 0。 out_trigger = 0。 out_clr = 0。 end end endmodule 分頻器 module freqcer_103(clk, trigger, reset, out_gate, out_clr, out_trigger)。 input clk, trigger, reset。 output out_gate, out_clr, out_trigger。 reg out_gate, out_clr, out_trigger。 reg[6:0] counter。 always @(posedge clk or posedge trigger) begin if(trigger) begin counter = 100。 end else if(reset) begin counter = 100。 out_trigger = 0。 out_clr = 0。 out_gate = 0。 end else if(counter = 101) begin out_gate = 1。 out_trigger = 0。 out_clr = 0。 counter = counter + 1。 end else if((counter = 102) amp。amp。 (counter = 109)) begin if((counter == 103) || (counter == 105) || (counter == 107)) begin out_trigger = 1。 end else if(counter == 109) begin out_clr = 1。 end else begin out_clr = 0。 out_trigger = 0。 end out_gate = 0。 counter = counter + 1。 end else if(counter == 110) begin counter = 0。 out_gate = 0。 out_clr = 0。 end end endmodule 鎖存器 LATCH_4_1 module latch_4_1(clk, set, reset, in, out)。 input clk, set, reset。 input[3:0] in。 output[3:0] out。 reg[3:0] out。 always @(posedge clk or posedge set or posedge reset) begin if(set) begin out = 1。 end else if(reset) begin out = 0。 end else begin out = in。 end end endmodule 改進(jìn)后的分頻器 module freq2(CLK1024, STAT, trigger, RESET, FGATE, FCLR, FTRIGGER)。 input CLK1024, trigger, RESET。 input[1:0] STAT。 output FGATE, FCLR, FTRIGGER。 reg FGATE, FCLR, FTRIGGER。 reg[13:0] counter。 always @(posedge CLK1024 or posedge trigger or posedge RESET) begin if(RESET) begin if(STAT == 0) begin counter =
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1