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

正文內容

基于fpga的數(shù)字頻率及設計與實現(xiàn)(編輯修改稿)

2024-12-13 22:03 本頁面
 

【文章內容簡介】 13 第四章 頻率計的實現(xiàn) 時鐘信號分頻模塊的設計 由于系統(tǒng)時鐘為 1Khz,因此要將其進行 1000分頻得到 1hz的周期信號,分頻程序比較簡單,其中 clk為輸入的 1Khz系統(tǒng)時鐘信號, clk1為輸出的 1hz信號,現(xiàn)將源程序摘抄如下: module clkdiv(clk,clk1)。 input clk。 output clk1。 reg clk1。 reg [10:0] count。 always@(posedge clk) begin count=count+1。 if(count==1139。d500) begin count=1139。d0。 clk1=~clk1。 end end endmodule 運用 Quartus II 軟件自帶仿真器進行仿真的結果如圖 41 所示。 圖 41:分頻模塊仿真圖 由上圖可見當時鐘計數(shù)到第 500 個時,輸出信號發(fā)生跳變,又經過 500 個時鐘周期后再次跳變,因此上述代碼達到了 1000 分頻的目的。 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 14 測頻控制信號發(fā)生模塊的設計 頻率測量的的基本原理是計算每秒內待測信號的脈沖個數(shù)。這就要求測頻控制信號發(fā)生模塊的計數(shù)使能信號 teten 能產生一個 1s脈寬的周期信號,并對頻率計的每一個計數(shù)器 tm10 的 ena 使能端進行同步控制。當 teten 高電平時允許計數(shù),低電平時停止計數(shù),并保持其所計的數(shù)。在停止計數(shù)器件,首先需要一個鎖存信號 load 的上跳沿將計數(shù)器在前 1 秒的計數(shù)值鎖存進鎖存器 reg1 中一段時間后穩(wěn)定輸出。設置鎖存器的好處是,顯示數(shù)據(jù)的穩(wěn)定,不會因為周期性的計數(shù)及清零產生閃爍。鎖存信號之后,必須有一個 clr_t 清零信號對計數(shù)器清零,為下一秒計數(shù)做準備。這樣需設計一個 測頻控制信號發(fā)生模塊,而且它的工作要滿足一定的時序關系。為了產生這個時序,需建立一個由 D 觸發(fā)器構成的 2 分頻器,在每次時鐘 clk上升沿到來時其值翻轉。其中 clk 的頻率為分頻模塊產生的 1hz信號,那么 teten 的脈寬 恰好是 1 秒,可用作閘門信號。然后根據(jù)測頻的時序要求,可得到 load 和 clr_ 的邏輯描述。在計數(shù)完成后,即計數(shù)使能信號 teten 在 1 秒的高電平后,利用其反相值的上升沿產生一個鎖存信號 load, 后, clr_t 產生一個清零信號的上升沿。該模塊的設計尤為重要,其源代碼為: module testctl(clk1,tsten,clr_t,load)。 input clk1。 output tsten,clr_t,load。 reg clr_t。 wire tsten,load。 reg div2clk。 always@(posedge clk1) div2clk=~div2clk。 always@(clk1 or div2clk) if(!clk1 amp。 !div2clk) clr_t=1。 else clr_t=0。 assign load=~div2clk。 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 15 assign tsten=div2clk。 endmodule 運用 Quartus II 軟件自帶仿真器進行仿真的結果如圖 42 所示。 圖 42: 測頻控制信號發(fā)生模塊 由上圖可見仿真結果與設計要求一致,故此模塊圓滿完成。 十進制計數(shù)模塊的設計 計數(shù)模塊是頻率計的核心部分,其有三個輸入,兩個輸出信號組成, ena 為輸入時鐘使能信號, clr 為輸入清零信號, clk 為輸入時鐘觸發(fā)信號; co 為進位信號為下一級計數(shù)器時鐘信號, qt 為輸出的4 為 2 進制數(shù)據(jù)。以下為計數(shù)器源程序: module tm10(clk,clr,ena,co,qt)。 input clk,clr,ena。 output co。 output [3:0] qt。 reg co。 reg [3:0] qt。 always@(posedge clk or posedge clr) begin if(clr) begin qt=439。d0。 co=139。b0。 end else begin if(ena) begin if(qt==439。b1001) begin 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 16 qt=439。b0000。 co=139。b1。 end else begin qt=qt+139。b1。 co=139。b0。 end end end end endmodule 用 Modelsim 進行仿真,結果如 圖 43 所示 : 圖 43:十進制計數(shù)模塊仿真圖 可見在 clr 和 ena 的作用下當計數(shù)器由 0 計到 9 后,計數(shù)器清零重新計數(shù),并在 0 時產生一個進位信號 co 供下一級計數(shù)器作為時鐘輸入。 八位十進制計數(shù)模塊的設計 在十進制計數(shù)器設計完成后,需要將 8 個這樣的計數(shù)器級聯(lián),形成 8 位 10 進制的計數(shù)器產生 10 的 8 次方個數(shù)據(jù)即 0—999999999。以下為元件例化的源程序: module tm8(clk, clr, ena, co, qt)。 input clk。 input clr。 input ena。 output co。 output [31:0] qt。 wire w3,w4,w5,w6,w7,w 8,w 9。 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 17 tm10 u1 (.clk(clk), .clr(clr), .ena(ena), .co(w3), .qt(qt[3:0]))。 tm10 u2(.clk(w 3), .clr(clr), .ena(ena), .co(w4), .qt(qt[7:4]))。 tm10 u3 (.clk(w4), .clr(clr), .ena(ena), .co(w5), .qt(qt[11:8]))。 tm10 u4 (.clk(w5), .clr(clr), .ena(ena), .co(w6), .qt(qt[15:12]))。 tm10 u5 (.clk(w6), .clr(clr), .ena(ena), .co(w7), .qt(qt[19:16]))。 tm10 u6 (.clk(w7), .clr(clr), .ena(ena), .co(w8), .qt(qt[23:20]))。 tm10 u7 (.clk(w8), .clr(clr), .ena(ena), 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 18 .co(w9), .qt(qt[27:24]))。 tm10 u8 (.clk(w9), .clr(clr), .ena(ena), .co(), .qt(qt[31:28]))。 endmodule 用 Modelsim 進行仿真,結果如 圖 44 所示 : 圖 44: 8 位 10 進制計數(shù)器模塊仿真圖 三十二位鎖存器模塊的設計 計數(shù)器輸出 32 位數(shù)值,需要送入鎖存器保存 后,待數(shù)據(jù)穩(wěn)定后再輸出顯示,代碼如下: module reg1 (load,din,dout)。 input load。 input[31:0] din。 output[31:0] dout。 reg[31:0] dout。 always@(posedge load) begin dout[31:0]=din[31:0]。 end endmodule 運用 Quartus II 軟件自帶仿真器進行仿真的結果如圖 45 所示。 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 19 圖 45: 32 位鎖存器模塊仿真圖 頂層模塊的設計 在頻率計各個模塊設計完成后,需要將各個模塊按照相應關系組合起來,這就是頂層模塊的元件例化過程。元件例化就是引入一種連接關系,將預先設計好的設計實體定義為一個元件,然后利用特定的語句將此元件與當前的設計實體中的指定端口相連接,從而為當 前設計實體引入一個新的低一級的設計層次。 在這里,當前設計實體相當于一個較大的電路系統(tǒng),所定義的例化元件相當于一個要插在這個電路系統(tǒng)板上的芯片,而當前設計實體中指定的端口則相當于這塊電路板上準備接受此芯片的一個插座。元件例化是使 Verilog HDL 設計實體構成自上而下層次化設計的一種重要途徑。 在一個結構體中調用子程序,包括并行過程的調用非常類似于元件例化,因為通過調用,為當前系統(tǒng)增加了一個類似于元件的功能模塊。但這種調用是在同一層次內進行的,并沒有因此而增加新的電路層次,這類似于在原電路系統(tǒng)增加了一個 電容或一個電阻。 元件例化是可以多層次的,在一個設計實體中被調用安插的元件本身也可以是一個低層次的當前設計實體,因而可以調用其它的元件,以便構成更低層次的電路模塊。因此,元件例化就意味著在當前結構體內定義了一個新的設計層次,這個設計層次的總稱叫元件,但它可以以不同的形式出現(xiàn)。如上所說,這個元件可以是來自FPGA 元件庫中的元件,它們可能是以別的硬件描述語言,如 Verylog 設計的實體。元件還可以是軟的 IP 核,或者是 FPGA 中的嵌入式硬IP 核。元件例化語句由兩部分組成,前一部分是對一個現(xiàn)成的設計實體定義 為一個元件,第二部分則是此元件與當前設計實體中的連接說明。以下為頂層模塊源程序: 哈爾濱工業(yè)大學 華德應用技術學院 畢業(yè)設計(論文) 20 module pinlv(clk, clkin, qt)。 input clk。 input clkin。 output [31:0] qt。 wire clk1,ena,clr,load。 wire [31:0] dout。 testctl u1 (.clk1(clk1), .tsten(ena) , .clr_t(clr), .load(load))。 clkdiv u2 (.clk(clk),
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1