色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的分頻器設計

CHANBAEK ? 來源:小小研究生 ? 作者:xxyjs2020 ? 2023-06-23 16:52 ? 次閱讀

數電基礎

板載晶振提供的時鐘信號頻率是固定的,不一定滿足需求,因此需要對基準時鐘進行分頻。要得到更慢的時鐘頻率可以 分頻 ,要得到更快的時鐘頻率可以 倍頻 。我們有兩種方式可以改變頻率,一種是 鎖相環 (PLL,后面章節會講解),另一種是用 Verilog代碼描述。

用Verilog代碼描述的往往是分頻電路,即 分頻器 。分頻就是輸出信號的頻率是輸入信號的1/n。原理是,輸入信號為計數脈沖,每n個脈沖輸出就翻轉一次。就可以看作是對輸入信號的“分頻”。十進制的計數器對應十分頻,如果是二進制的計數器那就是二分頻,還有四進制、八進制、十六進制等等以此類推。

設計規劃

實現6分頻,第一種方法是僅實現分頻,第二種方法是降頻:

圖片

圖片

時鐘信號周期為1格,輸出信號周期為6格,因此頻率為原來的1/6,也就是6分頻。

方法一:只需要讓計數器從0計數到2,就讓clk_out輸出信號取反。

方法二:方法一得到的新時鐘信號和真正的時鐘信號有區別,在高速系統中 不穩定 。因為在FPGA中凡是時鐘信號都要連接到全局時鐘網絡上,它能夠使時鐘信號到達每個寄存器的時間都盡可能相同,以保證更低的時鐘偏斜(Skew)和抖動(Jitter)。用分頻的方式產生的clk_out信號并沒有連接到全局時鐘網絡上,但sys_clk則是由外部晶振直接通過管腳連接到了FPGA的專用時鐘管腳上,自然就會連接到全局時鐘網絡上。因此我們可以產生一個clk_flag標志信號,從0計數到5,就變高電平,下一個時鐘電平變為低電平并維持5個時鐘間隔。和方法1對比,相當于把clk_out的上升沿信號變成了clk_flag的脈沖電平信號。雖然需要多使用一些寄存器資源但是能使系統更加穩定。

編寫代碼

module divider_six
(
input wire sys_clk , //系統時鐘50MHz
input wire sys_rst_n , 
output reg clk_out 
)
;


 reg [1:0] cnt; 
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 cnt <= 2'b0;
 else if(cnt == 2'd2)
 cnt <= 2'b0;
 else
 cnt <= cnt + 1'b1;


 //clk_out:6分頻50%占空比輸出
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 clk_out <= 1'b0;
 else if(cnt == 2'd2)
 clk_out <= ~clk_out;


 endmodule

我們觀察cnt和clk_out的變化條件:計數器發生改變的條件有兩個,一個是時鐘上升沿,一個是復位有效(復位下降沿)。計數器發生的改變有兩個,要么+1要么清零。清零條件有兩個:復位和溢出。因此第一個always塊中有三個判斷條件:復位和溢出時清零,其他的時候+1。

clk_out的變化條件:時鐘上升沿和復位有效(復位下降沿)。復位時clk_out為低電平,溢出時取反。

圖片

module divider_six
(
input wire sys_clk , //系統時鐘50MHz
input wire sys_rst_n , 
output reg clk_flag
);


 reg [2:0] cnt; 
 //cnt:計數器從0到5循環計數
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 cnt <= 3'b0;
 else if(cnt == 3'd5)
 cnt <= 3'b0;
 else
 cnt <= cnt + 1'b1;


 //clk_flag:脈沖信號指示6分頻
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 clk_flag <= 1'b0;
 else if(cnt == 3'd4)
 clk_flag <= 1'b1;
 else
 clk_flag <= 1'b0;


 endmodule

和方法1相似,區別在于輸出的變化不同,從0計數到4輸出變為1,否則為0。cnt溢出的條件是計數到5,輸出的變化是計數到4。

圖片

編寫testbench

`timescale 1ns/1ns
module tb_divider_six();
reg sys_clk;
reg sys_rst_n;
wire clk_out;


//初始化系統時鐘、全局復位
 initial begin
 sys_clk = 1'b1;
 sys_rst_n <= 1'b0;
 #20
 sys_rst_n <= 1'b1;
 end


 //sys_clk:模擬系統時鐘,每10ns電平翻轉一次,周期為20ns,頻率為50MHz
 always #10 sys_clk = ~sys_clk;
 //--------------------divider_sixht_inst--------------------
 divider_six divider_six_inst
 (
 .sys_clk (sys_clk ), //input sys_clk
 .sys_rst_n (sys_rst_n ), //input sys_rst_n
 .clk_out (clk_out ) //output clk_out
 );
 endmodule

兩種方法的testbench代碼一樣,除了輸出是clk_out還是clk_flag。

對比波形

如果波形沒有出來,可以在modelsim通過view的transcript查看錯誤。

方法1得到的波形

圖片

方法2得到的波形

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21754

    瀏覽量

    604235
  • 晶振
    +關注

    關注

    34

    文章

    2878

    瀏覽量

    68114
  • 分頻器
    +關注

    關注

    43

    文章

    447

    瀏覽量

    49987
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110154
  • 時鐘信號
    +關注

    關注

    4

    文章

    449

    瀏覽量

    28590
收藏 人收藏

    評論

    相關推薦

    基于FPGA的通用數控分頻器設計方案

    本文首先介紹了各種分頻器的實現原理,并在FPGA開發平臺上通過VHDL文本輸入和原理圖輸入相結合的方式,編程給出了仿真結果。最后通過對各種分頻的分析,利用層次化設計思想,綜合設計出了一種基于F
    發表于 05-07 09:43 ?5205次閱讀
    基于<b class='flag-5'>FPGA</b>的通用數控<b class='flag-5'>分頻器</b>設計方案

    基于FPGA的任意數值分頻器的設計

    【摘要】:介紹了基于FPGA的任意分頻系數的分頻器的設計,該分頻器能實現分頻系數和占空比均可以調節的3類
    發表于 04-26 16:09

    FPGA分頻器設計

    誰幫忙設計一下模數轉換芯片ADC0809以及串行通信部分均需要有相應的時鐘驅動。而此次選擇的Altera CycloneⅡ系列FPGA中的EP2C5T144C8的系統時鐘為20MHz,因此根據需要
    發表于 05-09 11:53

    ISE serdes Aurora,init_clk頻率是多少?

    ; reference_clk_1_p_r,GTXQ0_N => reference_clk_1_n_r, 我應該使用哪種方式,根據參考設計將其連接到250 Mhz,或者使用低至50 Mhz的fpga分頻器
    發表于 07-27 12:10

    基于FPGA 的等占空比任意整數分頻器的設計

    基于FPGA 的等占空比任意整數分頻器的設計 給出了一種基于FPGA 的等占空比任意整數分頻電路的設計方法。首先簡要介紹了FPGA 器件的
    發表于 02-22 14:22 ?39次下載

    基于CPLD/FPGA的多功能分頻器的設計與實現

    基于CPLD/FPGA的多功能分頻器的設計與實現 引言   分頻器在CPLD/FPGA設計中使用頻率比較高,盡管目前大部分設計中采用芯片廠家集成的鎖相環資源 ,但是對于要求
    發表于 11-23 10:39 ?1345次閱讀
    基于CPLD/<b class='flag-5'>FPGA</b>的多功能<b class='flag-5'>分頻器</b>的設計與實現

    什么是分頻器 分頻器介紹

    什么是分頻器 分頻器介紹     分頻器是指將不同頻段的聲音信號區分開來,分別給于放大,然后送到相應頻段的揚聲中再進行重放
    發表于 02-05 17:51 ?4450次閱讀

    應用于倍頻電路的預置可逆分頻器設計

    分析了應用于倍頻電路的預置可逆分頻器的工作原理,推導了觸發的驅動函數。并建立了基于simulink 和FPGA分頻器模型,實驗結果表明分頻器
    發表于 08-17 16:50 ?2075次閱讀
    應用于倍頻電路的預置可逆<b class='flag-5'>分頻器</b>設計

    FPGA實現小數分頻器

    介紹了一種基于FPGA的雙模前置小數分頻器分頻原理及電路設計,并用VHDL編程實現分頻器的仿真.
    發表于 11-29 16:43 ?48次下載
    <b class='flag-5'>FPGA</b>實現小數<b class='flag-5'>分頻器</b>

    fpga分頻器程序參考程序

    發表于 09-09 14:14 ?11次下載

    用Verilog實現基于FPGA的通用分頻器的設計

    用 Verilog實現基于FPGA 的通用分頻器的設計時鐘分頻包括奇數和偶數分頻
    發表于 07-14 11:32 ?46次下載

    一種基于FPGA分頻器的實現

    一種基于FPGA分頻器的實現說明。
    發表于 05-25 16:57 ?16次下載

    基于CPLD/FPGA的半整數分頻器設計方案

    基于CPLD/FPGA的半整數分頻器設計方案
    發表于 06-17 09:37 ?21次下載

    FPGA分頻器的設計方法

    FPGA分頻器是一種常用于數字信號處理、通信系統、雷達系統等領域的電路,其作用是將信號分成多個頻段。
    發表于 05-22 14:29 ?2315次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>分頻器</b>的設計方法

    FPGA學習-分頻器設計

    分頻器設計 一:分頻器概念 板載時鐘往往 是 有限個( 50MHZ/100MHZ/24MHZ/60MHZ… ),如果在設計中需要其他時鐘時,板載時鐘不滿足時,需要對板載時鐘進行分頻 / 倍頻,目的
    的頭像 發表于 11-03 15:55 ?2022次閱讀
    <b class='flag-5'>FPGA</b>學習-<b class='flag-5'>分頻器</b>設計
    主站蜘蛛池模板: 国产熟妇无码一区二| 91麻豆精品国产一级| 久久丫线这里只精品| 丰满老熟女白浆直流| 永久精品免费影院在线观看网站| 轻点灬大ji巴太粗太双性高h| 黑人操白逼| 在线观看国产亚洲| 亚洲成熟人网站| 污文乖不疼的| 日本调教网站| 热久久视久久精品2015| 考好老师让你做一次H| 精品久久久久中文字幕加勒比东京热 | 芳草地社区在线视频| H揉捏娇喘乳叫床NP调教视频| 最美白虎逼| 最近中文字幕在线中文高清版| 伊人22222| 18videosex性欧美黑色| 中文字幕爆乳JULIA女教师| 在线精品视频成人网| 中文无码热在线视频| 2021国产精品视频一区| 91黄色大片| 99久久做夜夜爱天天做精品| 99精品视频在线观看re| WWW色视频片内射| 跪趴式啪啪GIF动态图27报| 大胸美女被cao哭| 国产成人拍精品免费视频爱情岛 | 色小说在线| 挺进绝色老师的紧窄小肉六| 亚洲an天堂an在线观看| 亚洲色婷婷久久精品AV蜜桃| 艺术片 快播| caoporen超碰在线视频| 大伊人青草狠狠久久| 国产精品视频国产永久视频| 久久操韩国自偷拍| 女人被弄到高潮叫床免|