0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA學(xué)習(xí)系列:13. 任意分頻器設(shè)計(jì)

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-06-13 11:21 ? 次閱讀

設(shè)計(jì)背景:

分頻在fpga的設(shè)計(jì)中一直都擔(dān)任著很重要的角色,而說到分頻,我相信很多人都已經(jīng)想到了利用計(jì)算器來計(jì)算達(dá)到想要的時(shí)鐘頻率,但問題是僅僅利用計(jì)數(shù)器來分頻,只可以實(shí)現(xiàn)偶數(shù)分頻,而如果我需要三分頻,五分頻,七分頻等等奇數(shù)類分頻,那究竟怎么辦呢?在這里,讓我介紹一個(gè)可以實(shí)現(xiàn)任意整數(shù)分頻的方法,這個(gè)辦法也是同樣利用了計(jì)數(shù)器來計(jì)算,當(dāng)是跟偶數(shù)分頻不一樣的地方是任意整數(shù)分頻利用了兩個(gè)計(jì)數(shù)器來實(shí)現(xiàn)。

設(shè)計(jì)原理:

本次設(shè)計(jì)主要是設(shè)計(jì)一個(gè)可調(diào)的分頻器,我可以設(shè)置其參數(shù),可以調(diào)節(jié)其輸出的占空比,占空比的意思就是高電平所占周期的多少。我們通知計(jì)算高電平的時(shí)間和低電平的時(shí)間來實(shí)現(xiàn),其實(shí)就是我們用兩個(gè)計(jì)數(shù)器來控制的。

設(shè)計(jì)架構(gòu)圖:

image.png

狀態(tài)轉(zhuǎn)移圖

image.png

通過對兩個(gè)計(jì)數(shù)器的計(jì)數(shù),一個(gè)計(jì)算到了跳轉(zhuǎn)下一個(gè)狀態(tài),等下一計(jì)數(shù)器計(jì)數(shù)到了又調(diào)回第一個(gè)狀態(tài),從而完成任意分頻器的設(shè)計(jì)。

設(shè)計(jì)代碼:

設(shè)計(jì)模塊

0modulefenpinqi(clk,rst_n,clk0);

1 inputclk;

2 inputrst_n;

3

4 outputregclk0;

5

6 parameterHW =7;//分一個(gè)高位7

7 parameterLW =3; //低電平為3 也就是5M的時(shí)鐘

8

9 localparams0 =1'b0;//定義兩個(gè)狀態(tài)

10 localparams1 =1'b1;

11

12 regstate;

13 reg[2:0]count;

14

15 always@(posedgeclk ornegedgerst_n)

16 if(!rst_n)

17 begin

18 state <=1'b0;

19 count <=3'b0;

20 clk0 <=1'b0;

21 end

22 else

23 begin

24 case(state)

25 s0:begin

26

27 if(HW +1>1) //判斷是否HW0

28 if(count <HW -1)//計(jì)數(shù)器計(jì)數(shù)高電平

29 begin

30 clk0 <=1'b1;//產(chǎn)生高電平

31 count <=count +1'b1;

32 end

33 else

34 begin

35 count <=1'b0;

36 state <=1;

37 end

38 end

39 s1:begin

40 if(LW +1>1)//判斷是否LWW0

41 if(count <LW -1) //計(jì)數(shù)器計(jì)數(shù)低電平

42 begin

43 clk0 <=1'b0;//產(chǎn)生低電平

44 count <=count +1'b1;

45 end

46 else

47 begin

48 count <=1'b0;

49 state <=0;

50 end

51 end

52 default:state <=0;

53 endcase

54 end

55endmodule

測試模塊

0`timescale1ns/1ps

1 modulefenpinqi_tb();

2

3 regclk;

4 regrst_n;

5

6 wireclk0;//定義輸出為wire

7

8 parameterHW =5;

9 parameterLW =1;

10

11 initialbegin

12 clk =1'b1;

13 rst_n =1'b0;

14

15 #200.1rst_n =1'b1;

16 #2000$stop;

17 end

18 always#10clk =~clk;//產(chǎn)生50M時(shí)鐘

19

20 fenpinqi #(.HW(HW),.LW(LW))//例化,我們可以在這里改變占空比, 和頻率

21 fenpinqi_dut(

22 .clk(clk),

23 .rst_n(rst_n),

24 .clk0(clk0)

25 );

26 endmodule

仿真:

image.png

圖中我們通過數(shù)上升沿的個(gè)數(shù)可以看到輸出clk0的輸出為高7,低3,符合我們的設(shè)計(jì)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601238
收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA的通用數(shù)控分頻器設(shè)計(jì)方案

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

    基于FPGA任意數(shù)值分頻器的設(shè)計(jì)

    【摘要】:介紹了基于FPGA任意分頻系數(shù)的分頻器的設(shè)計(jì),該分頻器能實(shí)現(xiàn)分頻系數(shù)和占空比均可以調(diào)
    發(fā)表于 04-26 16:09

    基于FPGA任意分頻器設(shè)計(jì)

    本帖最后由 weihu_lu 于 2014-6-19 16:25 編輯 作者:盧威虎1、前言 分頻器FPGA設(shè)計(jì)中使用頻率非常高的基本單元之一。盡管目前在大部分設(shè)計(jì)中還廣泛使用集成鎖相環(huán)(如
    發(fā)表于 06-19 16:15

    至芯昭哥帶你學(xué)FPGAFPGA_100天之旅_任意分頻器

    至芯昭哥帶你學(xué)FPGAFPGA_100天之旅_任意分頻器
    發(fā)表于 08-19 11:14

    50%占空比任意分頻器verilog實(shí)現(xiàn)方法

    的OCC。像是拔牙操作一類的分頻我們今天不討論。今天討論的任意分頻器在許多的數(shù)字IC設(shè)計(jì)與FPGA面試筆試題中都有考察,所以在實(shí)(tou)現(xiàn)(xue)了以后做本次
    發(fā)表于 02-09 07:34

    任意分頻系數(shù)小數(shù)分頻器相關(guān)文檔及源代碼

    任意分頻系數(shù)小數(shù)分頻器相關(guān)文檔及源代碼
    發(fā)表于 08-03 09:49 ?75次下載
    <b class='flag-5'>任意</b><b class='flag-5'>分頻</b>系數(shù)小數(shù)<b class='flag-5'>分頻器</b>相關(guān)文檔及源代碼

    基于FPGA 的等占空比任意整數(shù)分頻器的設(shè)計(jì)

    基于FPGA 的等占空比任意整數(shù)分頻器的設(shè)計(jì) 給出了一種基于FPGA 的等占空比任意整數(shù)分頻
    發(fā)表于 02-22 14:22 ?39次下載

    基于CPLD/FPGA的多功能分頻器的設(shè)計(jì)與實(shí)現(xiàn)

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

    什么是分頻器 分頻器介紹

    什么是分頻器 分頻器介紹     分頻器是指將不同頻段的聲音信號區(qū)分開來,分別給于放大,然后送到相應(yīng)頻段的揚(yáng)聲中再進(jìn)行重放
    發(fā)表于 02-05 17:51 ?4327次閱讀

    FPGA實(shí)現(xiàn)小數(shù)分頻器

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

    用Verilog實(shí)現(xiàn)基于FPGA的通用分頻器的設(shè)計(jì)

    用 Verilog實(shí)現(xiàn)基于FPGA 的通用分頻器的設(shè)計(jì)時(shí)鐘分頻包括奇數(shù)和偶數(shù)分頻
    發(fā)表于 07-14 11:32 ?46次下載

    如何使用FPGA進(jìn)行任意小數(shù)分頻器的設(shè)計(jì)

    論文分析了雙模前置小數(shù)分頻器分頻原理和電路實(shí)現(xiàn)。結(jié)合脈沖刪除技術(shù),提出了一種適于硬件電路實(shí)現(xiàn)的任意小數(shù)分頻的設(shè)計(jì)方案 ,用 VerilogHDL語 言編程 ,在 QuartusII下
    發(fā)表于 08-02 08:00 ?5次下載
    如何使用<b class='flag-5'>FPGA</b>進(jìn)行<b class='flag-5'>任意</b>小數(shù)<b class='flag-5'>分頻器</b>的設(shè)計(jì)

    基于CPLD/FPGA的半整數(shù)分頻器設(shè)計(jì)方案

    基于CPLD/FPGA的半整數(shù)分頻器設(shè)計(jì)方案
    發(fā)表于 06-17 09:37 ?21次下載

    FPGA分頻器的設(shè)計(jì)方法

    FPGA分頻器是一種常用于數(shù)字信號處理、通信系統(tǒng)、雷達(dá)系統(tǒng)等領(lǐng)域的電路,其作用是將信號分成多個(gè)頻段。
    發(fā)表于 05-22 14:29 ?2029次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>分頻器</b>的設(shè)計(jì)方法

    FPGA學(xué)習(xí)-分頻器設(shè)計(jì)

    分頻器設(shè)計(jì) 一:分頻器概念 板載時(shí)鐘往往 是 有限個(gè)( 50MHZ/100MHZ/24MHZ/60MHZ… ),如果在設(shè)計(jì)中需要其他時(shí)鐘時(shí),板載時(shí)鐘不滿足時(shí),需要對板載時(shí)鐘進(jìn)行分頻 / 倍頻,目的
    的頭像 發(fā)表于 11-03 15:55 ?1596次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>學(xué)習(xí)</b>-<b class='flag-5'>分頻器</b>設(shè)計(jì)