当前位置: 首页>C语言>正文

分頻電路總結

分頻電路總結

1.占空比50%偶數分頻
采用計數方式,計數到(N/2)-1,計數置零,clk取反;


//DSIZE divide  50%
module top (clk_in, rst, clk_out);input  clk_in;input  rst;output clk_out;parameter DSIZE =6;reg  [DSIZE-1:0]count;reg clk_out;always@(posedge clk_in, negedge rst) beginif(!rst) begincount <=0;clk_out <=0;endelse if(count==(DSIZE/2)-1) begincount <=0;clk_out <= ~clk_out;endelse begincount <= count+1;clk_out <= clk_out;end               end
endmodule

2.占空比是50%奇數分頻
采用計數方式,計數到((N-1)/2)-1時,上升沿clk取反,計數到(N-1)時,clk再取反,得到clk_out1;
然后再在時鐘下降沿,采集clk_out1,相當于延遲半個時鐘周期,得到clk_out2;
最后,將clk_out1與clk_out2兩者相或,得到最終clk_out;


//odd 占空比50%
module top (clk_in, rst, clk_out);input clk_in;input rst;output clk_out;parameter SIZE = 7;reg [SIZE-1:0] count;//wire clk_out;reg clk_out1;reg clk_out2;//calculate countalways@(posedge clk_in,negedge rst) beginif(!rst) count <=0;else if(count < (SIZE-1))count <=count+1;elsecount <=0;end//posedge clkalways @(posedge clk_in,negedge rst) beginif(!rst) beginclk_out1 <= 1;endelse beginif(count ==((SIZE-1)/2)-1) beginclk_out1 <= !clk_out1;endelse if (count ==(SIZE-1)) clk_out1 <= !clk_out1;else beginclk_out1 <= clk_out1;end            endend
//negedge clkalways @(negedge clk_in,negedge rst) beginif(!rst) beginclk_out2 <= 0;endelse clk_out2 <= clk_out1;endassign clk_out =clk_out1|clk_out2;
endmodule

仿真波形圖:
7分頻波形圖

3.占空比不定的計數分頻
其實就是占空比50%的奇數分頻的一部分,首先計算出什么時候計數器翻轉;
舉例:占空比是(N-1)/2 : N的奇分頻
當計數值到(N-1)/2時,輸出時鐘取反,當計數器達到上限值N-1時,輸出時鐘再取反同時計數器歸零。


//占空比不定的奇數分頻,for example 占空比(SIZE-1)/2 : SIZEmodule top (clk_in, rst, clk_out);input clk_in;input rst;output clk_out;reg clk_out;parameter SIZE =7;reg [SIZE-1:0] count;//calculate countalways@(posedge clk_in, negedge rst) beginif(!rst)count <= 0;else if (count ==(SIZE-1))count <=0;else count <= count+1; end //calculate dividealways@(posedge clk_in,negedge rst) beginif(!rst)clk_out <= 0;else if (count ==(SIZE-1)/2)clk_out <= ~clk_out;else if (count ==(SIZE-1))clk_out <= ~clk_out;elseclk_out <= clk_out;	end endmodule

仿真結果:
在這里插入圖片描述
這三種design的Testbench相同,如下列所示:

 module tb;reg clk_in;reg rst;wire clk_out;top dut(.clk_in(clk_in),.rst(rst),.clk_out(clk_out));//generate clkinitial beginclk_in = 0;forever #5 clk_in = ~clk_in;end//generate rstinitial beginrst = 1'b1;#20   rst = 1'b0;#200  rst =1'b1;   end//generate siginal initial begin#2000;$stop;end
endmodule

https://www.zydui.com/afa7eUG8CDQ9TC1cB.html
>

相关文章:

  • 詳解PyTorch中的contiguous
  • PyTorch中的contiguous解讀
  • Pytorch中contiguous()函數理解
  • ios自定義UITabBar-仿寫掌上英雄聯盟的UITabBar
  • 基于Cocos2d-x的英雄聯盟皮膚選擇菜單
  • lol-登陸英雄聯盟出錯
  • JS中雙層for循環執行順序
  • 關于for循環執行順序
  • 上古卷軸5boss計算機丟失,上古卷軸5常見BUG解決辦法
  • 上古世紀服務器維護真情禮,4月9日例行維護懷舊服合服公告
  • 塔羅牌張數
  • 工程管理中的工程技術
  • 銳派出品:LOL新年特輯S4各類細節之下路篇
  • 藍城兄弟Q4業績背后,垂直社區具備多少想象力?
  • Mac OS啟動服務優化高級篇(launchd tuning)
  • #Geek Point# 為什么現在要去印度看一看?
  • vm 流程運行mac os_什么是“商務”流程,為什么在我的Mac上運行?
  • # 陌生人社交產品:需求、困境與破局之道
  • mac 不受信任在哪里更改_什么是受信任的,為什么它可以在Mac上運行?
  • 車行軌跡分類實踐
  • 智慧車行預約小程序 v9.1
  • i12藍牙耳機充電倉怎么看充滿電_車行藍牙耳機價格高性價比的選擇
  • 車行平安
  • 論文閱讀——《基于卷積神經網絡的車行環境多類障礙物檢測與識別》
  • 飛槳開發者創意薈:PaddleHub一鍵部署,AI創意實現原來如此簡單
  • eclipse左側欄目即包資源管理器怎么打開
  • 卷毛機器人符文_卷毛S6娜美輔助天賦 娜美輔助符文天賦S6最新
  • 天賦介紹
  • 蘋果怎么沒有4g信號還無服務器,不顯示4g信號怎么回事?蘋果手機不顯示4g信號的解決方法...
  • c4D體積生成和Quad Remesher重新拓撲減面插件