一个数字倍频电路
这个就是原理图,奉上代码
1 /////////////////////////////////////////////////////////////////////////////
2 // date : wed jun 6 22:58:17 cst 2012
3 /////////////////////////////////////////////////////////////////////////////
4 module clk_mul(
5 input wire clk
6 , input wire rst_n
7 , output wire clk_out
8 );
9 //////////////////////////////////////////////////////////////////////////////
10 // variable declaration
11 reg temp_mul ;
12 //////////////////////////////////////////////////////////////////////////////
13 // logic
14 always @(posedge clk_out or negedge rst_n) begin
15 if(~rst_n) temp_mul <= 1'b0 ;
16 else temp_mul <= #2 ~temp_mul ;
17 end
18 assign clk_out = ~(clk ^ ~temp_mul) ;
19 //////////////////////////////////////////////////////////////////////////////
20
21 endmodule // created by poiu_elab@1207
22
23 //////////////////////////////////////////////////////////////////////////////
这个东西很简单的,但是要注意,它的核心是第16行的#2,这里的延时(占空比)可以通过电路的tco和经过反相器的时间来搞定(其中可以插入一些buffer来调节时间),testbench这么来写(很简单,但是便于下面解释延时对占空比的影响还是附上)。
1 ///////////////////////////////////////////////////////////////////////////////
2 // date : wed jun 6 23:00:31 cst 2012
3 ///////////////////////////////////////////////////////////////////////////////
4 `define clk_cycle 20
5 module tb();
6 ///////////////////////////////////////////////////////////////////////////////
7 // variable declaration
8 reg clk ;
9 reg rst_n ;
10 wire clk_out ;
11 ///////////////////////////////////////////////////////////////////////////////
12 // stimulation generation
13 initial forever #(`clk_cycle/2) clk = ~clk;
14 initial begin
15 rst_n = 1'b0 ;
16 clk = 1'b1 ;
17 #500;
18 rst_n = 1'b1 ;
19 #5000;
20 $stop;
21 end
22 ///////////////////////////////////////////////////////////////////////////////
23 // module instaniation
24 clk_mul u_clk_mul(
25 .clk ( clk )
26 , .rst_n ( rst_n )
27 , .clk_out ( clk_out )
28 );
29 ///////////////////////////////////////////////////////////////////////////////
30
31 endmodule // created by poiu_elab@1207
32
33 ///////////////////////////////////////////////////////////////////////////////
下面给出仿真图,当#2的时候,是这样的,其中你要关心的其实是~temp_mul & clk, 当你要是q端经过反相器的信号与接入的clk信号相同的时候你的clk_out就会起来,之后你的q端翻转了的话,你的clk_out就会落下来,这时候在下一个clk翻转的时候,你的~temp_mul & clk就会又要把clk_out拉起来,q端又翻转,以此类推,就可以继续在每个clk的跳变沿出现你的clk_out的高电平,调整你的tco和反相器延时就可以调整你的高电平时间,由于周期又是固定的,这样就可以调整你的占空比。
而当#5的时候,是这样的
看出什么端倪了没,当你的延时,正好是时钟周期的1/4的时候,你就可以得到一个占空比是50%的2倍频时钟。
鸿蒙报名入口 报名方法如下
在温度跟踪电源中使用热敏电阻
光纤面板你真的了解吗-科兰
西安紫光国芯被陕西发改委通报,境外出资775万美元未备案
源创通信IPP200 USB 手柄电话介绍
数字倍频电路原理图
加密货币Nano在委内瑞拉产生了巨大的影响
摩尔线程与光环新网和光环云达成战略合作
汽车智能驾驶如何实现真正的人工智能
健身房中智能镜子的应用,让健身成为一种新的时尚
聊聊关于虚拟现实的话题
移动视频品质:媒体网关解决方案之革新
解析内存中的高性能内存图结构及关键因素
btb16 800怎么测量好坏
Meta:正在多款自研芯片上使用RISC-V
阿里巴巴和亚马逊将引领全球进入语音互联网
如何建立适合商用的边缘计算网络?
倍流同步整流在DC/DC变换器中工作原理分析
药品冷链运输与存储的解决方案
LED光源黑化初步诊断失效分析