精华内容
下载资源
问答
  • 十分频电路
    千次阅读
    2021-08-03 11:17:06

    1、什么是阻抗?

    阻抗是一个基础概念,他可以简化为电阻,也可以推出特性阻抗。阻抗的定义就是瞬时的电压除以电流,跟电阻的定义很像,简单理解就是阻碍电流的流动,感抗,容抗类似

    2、什么是感(电感)

    当线圈中有电流通过时,就会在线圈中形成感应电磁场,而感应电磁场又会在线圈中产生感应电流来抵制通过线圈中的电流。因此,我们把这种电流与线圈之间的相互作用称其为电的感抗。

    容性的本质就是以空间或电介质内的电场形式储存电能。

    感性的本质就是以空间或磁介质内的磁场储存电能。

    3、什么是耦合?

    简单理解就是前后一级连接的意思,两个电路相互有影响。

    什么是选频网络:在无线通信过程中,在无线通信过程中,所占频段范围较宽。

    同一通信频段内,存在着许多被传送的无线电信号及噪声,我们只需要把接收需要的信号进行使用就行,所以就要对其进行选频,把所需要的频段选取出来

    串联谐振

    LC谐振回路实际上是LC组成的线性选频网络。LC谐振回路在高频电路中起着重要的作用

    串联谐振回路的阻抗具有如下特性 初学者记住就行,后面的电路判断,都是根据这几个特性进行判断 

    当外加激励信号的角频率ω小于LC串联谐振回路的谐振频率ω0时,回路阻抗呈容性

    当外加激励信号的角频率ω等于LC串联谐振回路的谐振频率ω0时,回路阻抗呈容纯阻性

    当外加激励信号的角频率ω大于LC串联谐振回路的谐振频率ω0时,回路阻抗呈感性

    品质因数的一种定义和意义

    品质因数 Q 去衡量电感线圈的损耗。也就是说用电感的电抗比上电感线圈的损耗,即:Q=Rω/L​,,r越大,回路损耗的功率越多,回路中的品质因素就越高,选择性变好,通频带变窄————当你对另外一半得要求变高,虽然选择男友的质量提高了,但是可选择的范围就小了

                                             图1  LC串联回路幅频特性

    并联谐振回路Q值降低选择性变差,Q1>Q2>Q3

    通频带一般是指图(b)BW0.7这一段,当通频带频率等于系统频率f0时,此时系统产生谐振

    当Rs、RL接入LC并联谐振回路时,回路的选择性将变

    与LC串联谐振回路串联的电阻越大,则回路的品质因数Q越低。

    Rs和RL接入后,并联谐振回路Q值降低选择性变差。Rs和RL越大,Q值越大,带宽BW越。)

     总结

    在学习第一章时,需要理解很多概念,品质因素Q,阻抗Z,感抗,阻抗,什么是谐振,通频带BW0.7,产生谐振的条件,

    第一章有很多计算,需要计算串联阻抗,并联阻抗,品质因素,插入系数,

    下一篇再继续分享,喜欢的伙伴的记得点赞收藏哦

     

     

     

     

     

    更多相关内容
  • matlab十分频电路设计

    2012-12-15 18:52:59
    用D触发器设计的占空比为0.5的十分频
  • verilog十分频电路

    2011-04-25 19:12:16
    十分频电路,40M分频得到4M的verilog程序!
  • 摘要: 基于65 nm CMOS 工艺, 分别采用CML 电路和TSPC 电路设计并实现一种新型五分频电路, 适用于USB 3. 0物理层中时钟频率的五分频转换, 且输出占空比基本满足50%, 仿真结果表明采用CML 电路构建的分频器可稳定...
  • 我设计了一个简单的2路无源音频分器,它由2个功率电感器和2个电解电容器组成。这是二阶设计或12 dB /八度。该顺序通常在无源分器中使用,因为它在复杂性和响应之间提供了合理的平衡。高阶音频滤波器更难设计,...
  • LM567选频电路特点

    2020-07-17 19:20:22
    本文主要为基于LM567选频电路,希望对你的学习有所帮助。
  • 使用verilog描述的七分频电路且占空比为50%,另外附带测试电路
  • 传统的用分立元件搭制检测电路的方法将无法适应传感器电容不断减小的趋势,因此设计匹配的接口集成电路十分必要的。常用的低值电容测量电路都是把电容的变化转变为电压或频率。目前大多数国外MEMS传感器厂家采用...
  • 分频电路在音响中得到了广泛的应用,它能将可以将不同频段的声音信号区分开来,分别给于放大,然后送到相应频段的扬声器中再进行重放,对音质的好坏至关重要。换句话说,使用分器可以将高频信号送到高音扬声器中,...
  • 因为家庭环境噪声大多在10kHz以下,又由于普通驻极体话筒的频响上限为十几kHz,故选频电路谐振频率确定为12kHz。 当IC被前级的高电平触发后,电路翻转,Q2端输出电平亦发生变化,使晶体管VT4状态发生变化从而触发...
  • VHDL 三分频电路原理图 电路 VHDL 三分频电路原理图.rar VHDL 三分频电路原理图
  • PDF文档,主要涉及高频电路和低频电路的设计,非常好的一本书
  • 摘要: 基于65 nm CMOS 工艺, 分别采用CML 电路和TSPC 电路设计并实现一种新型五分频电路, 适用于USB 3. 0物理层中时钟频率的五分频转换, 且输出占空比基本满足50%, 仿真结果表明采用CML 电路构建的分频器可稳定...
  • 电子政务-基于运放搭建的抖频电路.zip
  • 电子政务-基于三极管搭建的抖频电路.zip
  • 四川大学《电路》考研 第十四章 选频电路
  • 基于VHDL语言分电路程序设计

    千次阅读 多人点赞 2020-06-13 15:51:39
    基于VHDL语言分电路程序设计(汇总) 分器简介: 分器是数字电路中最常用的电路之一,在 FPGA 的设计中也是使用效率非常高的基本设计。基于 FPGA 实现的分频电路一般有两种方法:一是使用FPGA 芯片内部提供...

    基于VHDL语言分频器电路程序设计(汇总)

    分频器简介:

    分频器是数字电路中最常用的电路之一,在 FPGA 的设计中也是使用效率非常高的基本设计。基于 FPGA 实现的分频电路一般有两种方法:一是使用FPGA 芯片内部提供的锁相环电路,如 ALTERA 提供的 PLL(Phase Locked

    Loop),Xilinx 提供的 DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL 等。使用锁相环电路有许多优点,如可以实现倍频;相位偏移;占空比可调等。但 FPGA 提供的锁相环个数极为有限,不能满足使用要求。因此使用硬件描述语言实现分频电路经常使用在数字电路设计中,消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低、可编程等优点。

    计数器

    计数器是实现分频电路的基础,计数器有普通计数器和约翰逊计数器两种。这两种计数器均可应用在分频电路中。

    • 普通计数器: 最普通的计数器是加法(或减法)计数器。
    • 约翰逊计数器: 约翰逊计数器是一种移位计数器,采用的是把输出的最高位取非,然后反馈送到最低位触发器的输入端。约翰逊计数器在每个时钟下只有一个输出发生变化。

    分频器

    如前所述,分频器的基础是计数器,设计分频器的关键在于输出电平翻转的时机。下面使用加法计数器分别描述各种分频器的实现。

    • 偶数分频器:偶数分频最易于实现,欲实现占空比为 50%的偶数 N 分频,一般来说有两种方案:一是当计数器计数到N/2-1 时,将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环下去;二是当计数器输出为 0 到 N/2-1 时,时钟输出为 0 或 1,计数器输出为 N/2 到 N-1 时,时钟输出为 1 或 0,当计数器计数到N-1 时,复位计数器,如此循环下去。需要说明的是,第一种方案仅仅能实现占空比为 50%的分频器,第二种方案可以有限度的调整占空比,参考非 50%占空比的奇数分频实现。
    • 奇数分频器:实现非50%占空比的奇数分频,如实现占空比为 20%(1/5)、40%(2/5)、60%(3/5)、80%(4/5)的 5 分频器,可以采用似偶数分频的第二种方案;但如果实现占空比为 50%的奇数分频,就不能使用偶数分频中所采用的方案了。
    • 半整数分频器:仅仅采用数字分频,不可能获得占空比为 50%的 N+0.5 分频,我们只可以设计出占空比为(M+0.5)/(N+0.5)或者 M/(N+0.5)的分频器,M 小于 N。这种半整数分频方法是对输入时钟进行操作,让计数器计数到某一个数值时,将输入时钟电平进行一次反转,这样,该计数值只保持了半个时钟周期,因此实现半整数分频。
    • 小数分频器:小数分频是通过可变分频和多次平均的方法实现的。例如要实现 4.7 分频,只要在 10 次分频中,做 7 次 5 分频,3 次 4 分频就可以得到。再如要实现 5.67 分频,只要在 100 次分频中,做 67 次6 分频,33 次 5 分频即可。考虑到小数分频器要进行多次两种频率的分频,必须设法将两种分频均匀。
    • 分数分频器:将小数分频的方法进行扩展,可以得到形如M (L/N )的分数分频的方法,例如, 2(7/13)等于分母的,进行分频,只要在 13 次分频中,进行 7 次 3 分频,6 次 2 分频就可以得到。同样,为了将两种分频均匀,将分子部分累加,小于分母的,进行M分频,大于(M+1)分频。
    • 积分分频器:积分分频器用于实现形如 2 m − 1 / N 2^{m-1}/N 2m1/N的分频,例如 8/3 分频。我们当然可以使用上面提到的分数分频的方法,但对于这种形式的分频,使用积分分频的方法综合往往占用更少的 FPGA 资源。积分分频法基于下述原理:一个 m 位的二进制数字每次累加 N,假定累加x 次累加值最低m 位回到 0,同时越过 2 m y 2^my 2my 次,那么,当前累加的数字应该是Nx= 2 m y 2^my 2my;每越过 2 m 2^m 2m一次,最高位变化 2 次,所以,累加 x 次,最高位变化 2y次,得到 x / 2 y = 2 m − 1 / N x/2y=2^{m-1}/N x/2y=2m1/N分频的分频器例如,取 m 为 4,N 为 3,当累加 16 次时,累加值为 48,最低 m 位变回到 0,同时越过 16 三次,最高位变化 6 次,由此得到 16/6=8/3 分频的分频器。

    注意: 以上分频器程序设计的案例将会在下边进行一一分析。

    软件说明: ModelSimSetup-13.1.0.162,QuartusSetup-13.1.0.162。

    建立工程:

    第一步:打开Quartus软件。

    第二步:点击New Project Wizard -> next.

    第三步:选择工程文件的存放位置,输入工程名 -> next -> next。

    第四步:在family栏选择芯片型号-Cyclone IV E,在Name栏选择EP4CE115F29C7,选择完之后点击next。(如果不进行硬件调试时,此处默认即可)

    第五步:检查工程有没有建错,点击完成。如下图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JAvIBjAI-1592033868964)(G:\研究生\FPGA课程\笔记文档\rec\20161122122950778.png)]

    程序设计:

    普通计数器:
    --文件名:ADDER8B.vhd 应与工程名保持一致:
    --Description: 带复位功能的加法计数器
    library ieee;
    use ieee.std_logic_1164.all; 
    use ieee.std_logic_arith.all; 
    use ieee.std_logic_unsigned.all; 
    entity ripple is
     generic (width: integer := 4); 
     port(clk, rst: in std_logic; 
     cnt: out std_logic_vector(width - 1 downto 0)); 
    end ripple; 
    architecture a of ripple is
     signal cntQ: std_logic_vector(width - 1 downto 0); 
    begin 
    	 process(clk, rst) 
    	 begin 
    	 if (rst = '1') then
    		 cntQ <= (others => '0'); 
    	 elsif (clk'event and clk = '1') then
    		 cntQ <= cntQ + 1;
    	 end if; 
    	 end process; 
     cnt <= cntQ; 
    end a;
    

    在同一时刻,加法计数器的输出可能有多位发生变化,因此,当使用组合逻辑对输出进行译码时,会导致尖峰脉冲信号。使用约翰逊计数器可以避免这个问题。

    文件仿真(这里采用modelsim仿真波形):
    1. 选择File-> New -> Verification/Debugging Files ->University Program VWF。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hIScEXtC-1592033868968)(G:\研究生\FPGA课程\笔记文档\rec\QQ截图20200423165155.png)]

    2.打开测试文件。(右键点击添加端口,对输入信号初始化,赋值。)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D7l1kkjK-1592033868970)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612183621.png)]

    3.仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xsubDOQn-1592033868976)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612183335.png)]

    逻辑电路图:

    显示编译成功后,选择菜单栏 Tools –>Netlist Viewers  –>RTL Viewer 显示逻辑电路图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9wdym7zZ-1592033868980)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612181245.png)]

    约翰逊计数器:
    --file Name: johnson.vhd 
    --Description: 带复位功能的约翰逊计数器
    library ieee; 
    use ieee.std_logic_1164.all; 
    use ieee.std_logic_arith.all; 
    use ieee.std_logic_unsigned.all; 
    entity johnson is
     generic (width: integer := 4); 
     port (clk, rst: in std_logic; 
     cnt: out std_logic_vector(width - 1 downto 0)); 
    end johnson; 
    architecture a of johnson is
     signal cntQ: std_logic_vector(width - 1 downto 0); 
    begin 
     process(clk, rst) 
     begin 
     if(rst = '1') then
     cntQ <= (others => '0'); 
     elsif (rising_edge(clk)) then
     cntQ(width - 1 downto 1) <= cntQ(width - 2 downto 0); 
     cntQ(0) <= not cntQ(width - 1); 
     end if; 
     end process;
       cnt <= cntQ; 
    end a;
    
    

    逻辑电路图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kV4PDTgw-1592033868982)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612184615.png)]

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riiRRVV3-1592033868983)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612185535.png)]

    显然,约翰逊计数器没有有效利用寄存器的所有状态,假设最初值或复位状态为0000,则依次为 0000、0001、0011、0111、1111、1110、1100、1000、0000 如 循环。再者,如果由于干扰噪声引入一个无效状态,如 0010,则无法恢复到有效到循环中去,需要我们加入错误恢复处理.

    偶数分频器:(6 分频)

    architecture a 使用的是第一种方案,architecture b 使用的是第二种方案。更改 configuration 可查看不同方案的综合结果。

    --filename clk_div6.vhd
    --description: 占空比为 50%的 6 分频 
    library ieee; 
    use ieee.std_logic_1164.all; 
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all; 
    entity clk_div6 is
     port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div6; 
    --使用第一种方案
    architecture a of clk_div6 is
    	 signal clk_outQ: std_logic := '0';--赋初始值仅供仿真使用
    	 signal countQ: std_logic_vector(2 downto 0) := "000"; 
    	 begin 
    		 process(clk_in) 
    		 begin 
    		 if(clk_in'event and clk_in = '1') then
    			 if(countQ /= 2) then 
    				 CountQ <= CountQ + 1; 
    			 else 
    				 clk_outQ <= not clk_outQ; 
    				 CountQ <= (others =>'0'); 
    			 end if; 
    		 end if; 
    		 end process; 
    	 clk_out <= clk_outQ;
    end a; 
    --使用第二种方案
    architecture b of clk_div6 is
    	 signal countQ: std_logic_vector(2 downto 0);
    	 begin 
    		 process(clk_in) 
    		 begin 
    			 if(clk_in'event and clk_in = '1') then
    				 if(countQ < 5) then
    					 countQ <= countQ + 1; 
    				 else 
    					 CountQ <= (others =>'0'); 
    				 end if; 
    			 end if; 
    		 end process; 
    		 process(countQ) 
    		 begin 
    				 if(countQ < 3) then
    					 clk_out <= '0'; 
    				 else 
    					 clk_out <= '1';
    				end if; 
    		 end process; 
     end b;
         
    configuration cfg of clk_div6 is
     for a 
     end for; 
    end cfg;
    

    逻辑电路图:

    architecture a:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ESVyd5Ae-1592033868985)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612192249.png)]

    architecture b:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oDh4ZwB0-1592033868986)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612193435.png)]

    仿真结果:

    architecture a、b:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aweAL1EG-1592033868987)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612192655.png)]

    奇数分频器:

    非 50%占空比:

    下面就以实现占空比为40%的 5 分频分频器为例,说明非 50%占空比的奇数分频器的实现。该分频器的实现对于我们实现 50%占空比的分频器有一定的借鉴意义。

    --filename clk_div5.vhd
    --description: 占空比为 40%的 5 分频
    library ieee; 
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all; 
    use ieee.std_logic_unsigned.all;
    entity clk_div5 is
     port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div5;
    architecture a of clk_div5 is
       signal countQ: std_logic_vector(2 downto 0);
    	begin 
    	 process(clk_in) 
    	 begin
    		if(clk_in'event and clk_in = '1') then
    			if(countQ < 4) then
    				 countQ <= countQ + 1; 
    			 else 
    				 CountQ <= (others =>'0'); 
    			 end if; 
    		end if; 
    	 end process; 
    		process(countQ) 
    		 begin 
    			 if(countQ < 3) then
    				 clk_out <= '0'; 
    			 else 
    				 clk_out <= '1'; 
    			 end if; 
    	 end process; 
    end a;
    

    逻辑电路图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gTQmg5gH-1592033868989)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612221125.png)]

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PGse4UHD-1592033868990)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612221101.png)]

    50%占空比的奇数分频:

    通过待分频时钟下降沿触发计数,产生一个占空比为40%(2/5)的 5 分频器。将产生的时钟与上升沿触发产生的时钟相或,即可得到一个占空比 50%的 5 分频器。

    推广为一般方法:欲实现占空比为 50%的 2N+1 分频器,则需要对待分频时钟上升沿和下降沿分别进行N/(2N+1)分频,然后将两个分频所得的时钟信号相或得到占空比为 50%的 2N+1 分频器。

    下面的代码就是利用上述思想获得占空比为 50%的 7 分频器。需要我们分别对上升沿和下降沿进行 3/7 分频,再将分频获得的信号相或。

    --filename clk_div7.vhd 
    --description: 占空比为 50%的 7 分频
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    entity clk_div7 is
    	port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div7;
    
    architecture a of clk_div7 is 
    	 signal cnt1, cnt2: integer range 0 to 6; 
    	 signal clk1,clk2: std_logic;
    	 begin 
    		 process(clk_in)--上升沿
    			begin 
    			 if(rising_edge(clk_in)) then
    				 if(cnt1 < 6)then
    					cnt1 <= cnt1 + 1;
    				 else 
    				   cnt1 <= 0; 
    				 end if;
    				 if(cnt1 < 3) then
    					 clk1 <= '1';
    				 else
    					clk1 <= '0';
    				 end if; 
    			 end if;
    		 end process;
    		 process(clk_in)--下降沿
    			begin 
    				 if(falling_edge(clk_in)) then
    					if(cnt2 < 6) then
    						 cnt2 <= cnt2 + 1;
    					 else 
    						 cnt2 <= 0; 
    					 end if;
    					 if(cnt2 < 3) then
    						 clk2 <= '1';
    					 else 
    						 clk2 <= '0'; 
    					 end if; 
    				  end if; 
    		 end process;
    	clk_out <= clk1 or clk2;
    end a;
    

    逻辑电路图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8sXSHOT6-1592033868991)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612223407.png)]

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HTT4cUUW-1592033868993)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612223628.png)]

    半整数分频器:

    如上所述,占空比为 50%的奇数分频可以帮助我们实现半整数分频,将占空比为50%的奇数分频与待分频时钟异或得到计数脉冲,下面的代码就是依靠占空比为 50%的 5 分频实现 2.5 分频器的。

    --filename clk_div2_5.vhd 
    --description: 占空比为 1/1.5,即 60%。的 2.5分频
    library ieee; 
    use ieee.std_logic_1164.all; 
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    entity clk_div2_5 is
    	  port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div2_5; 
    
    architecture a of clk_div2_5 is
      signal cnt1, cnt2: integer range 0 to 4;
      signal clk1, clk2: std_logic;
      signal Pclk, Lclk: std_logic;
      signal cnt3:integer range 0 to 2;
    begin 
    	 process(clk_in) 
    		 begin 
    			 if(rising_edge(clk_in)) then
    				 if(cnt1 < 4) then
    					 cnt1 <= cnt1 + 1; 
    				 else 
    					 cnt1 <= 0; 
    				 end if; 
    			 end if; 
    	 end process;
    	 process(clk_in) 
    		 begin 
    			 if(falling_edge(clk_in)) then 
    					if(cnt2 <4)  then
    						 cnt2 <= cnt2 + 1;
    					else 
    						 cnt2 <= 0; 
    					end if; 
    			 end if; 
    	 end process;
    	 process(cnt1) 
    		 begin 
    			 if (cnt1 <3) then
    				clk1 <= '0';
    			 else 
    				 clk1 <= '1';
    			 end if; 
    	 end process;
    	 process(cnt2) 
    		 begin 
    			 if (cnt2 < 3) then
    				 clk2 <= '0';
    			 else 
    				 clk2 <= '1';
    			 end if; 
    	 end process;
       
    	 process(Lclk) 
    	 begin
    		if(rising_edge(Lclk)) then
    			 if(cnt3 < 2) then
    				cnt3 <= cnt3 + 1;
    		    else
    			   cnt3 <= 0;
    		    end if;
    		end if;
    	 end process;    
    	 process(cnt3) 
    		 begin 
    		 if(cnt3 < 2) then
    			 clk_out <= '0';
    		 else 
    			 clk_out <='1';
    		 end if; 
    	 end process;    
    	 Pclk <= clk1 or clk2;
    	 Lclk <= clk_in xor Pclk;--对输入时钟进行处理
    end a;        
    

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsxxu81n-1592033868994)(G:\研究生\FPGA课程\笔记文档\rec\截图20200612231446.png)]

    小数分频器:

    表 1以 2.7 分频为例,小数部分进行累加,如果大于等于10,则进行 3 分频,如果小于 10,进行

    2 分频。

    表一:小数分频系数序列

    序号0123456789
    累加值71411815129161310
    分频 系数2332332333

    下加器面的代码就是基于上述原理实现 2.7 分频。architecture b 是使用累加器计算分频系数选则时机, chitectur a 是直接使用已计算好的结果。

    --file name: clk_div2_7.vhd
    --description: 2.7 分频 ,占空比应为 10/27。
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    entity clk_div2_7 is
    	  port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div2_7;
    architecture b of clk_div2_7 is
     signal clkoutQ: std_logic; 
     signal ctrl: std_logic; 
     signal cnt1: integer range 0  to 1;
     signal cnt2: integer range 0  to 2;
    begin 
    	 clk_out <= clkoutQ; 
    	 process(clkoutQ) 
    		variable tmp: integer range 0 to 20;
    		begin 
    			 if(rising_edge(clkoutQ)) then
    					tmp := tmp + 7; 
    				 if(tmp < 10) then
    						ctrl <= '1'; 
    				 else 
    						ctrl <= '0';
    						tmp := tmp - 10;
    				 end if; 
    			 end if; 
    	 end process;
    		 
    	 process(clk_in) 
    		 begin 
    			 if(clk_in'event and clk_in = '1') then
    				 if(ctrl = '1') then
    					 if(cnt1 < 1) then
    						  cnt1 <= cnt1 + 1;
    					 else
    						  cnt1 <= 0; 
    					 end if; 
    					 if(cnt1 < 1) then
    					     clkoutQ <= '1'; 
    					 else 
    						  clkoutQ <= '0'; 
    					 end if; 
    				 else 
    					 if(cnt2 < 2) then
    							cnt2 <= cnt2 + 1;
    					 else 
    							cnt2 <= 0; 
    					 end if; 
    				 if(cnt2 < 1) then
    					 clkoutQ <= '1';
    				 else 
    					 clkoutQ <= '0'; 
    				 end if; 
    				 end if;
    			  end if; 
    	 end process;
     end b;
     architecture a of clk_div2_7 is
    	 signal cnt: integer range 0 to 9;
    	 signal clkoutQ: std_logic;
    	 signal cnt1: integer range 0 to 1;
    	 signal cnt2: integer range 0 to 2;
    	begin 
    		clk_out <= clkoutQ;
    		process(clkOutQ)
    		  begin 
    			 if(clkoutQ'event and clkoutQ = '1') then
    					if (cnt < 9) then
    					    cnt <= cnt + 1; 
    					else 
    					    cnt <= 0; 
    					end if; 
    			 end if; 
    		end process;
    		process(clk_in) 
    		  begin 
    			 if(clk_in'event and clk_in = '1') then
    				 case cnt is
    					  when 0|3|6 =>
    						  if(cnt1 < 1) then
    							   cnt1 <= cnt1 + 1;
    						  else
    							   cnt1 <= 0;
    						  end if; 
    						  if(cnt1 < 1) then
    								clkoutQ <= '1';
    						  else 
    								clkoutQ <='0';
    						  end if; 
    					  when others =>
    						  if(cnt2 < 2) then
    							  cnt2 <= cnt2 + 1;
    						  else 
    						     cnt2 <= 0; 
    						 end if; 
    						 if(cnt2 < 1) then
    						     clkoutQ <= '1'; 
    						 else 
    						     clkoutQ <= '0';
    						 end if; 
    				 end case; 
    			 end if; 
    		 end process; 
     end a; 
       
    configuration cfg of clk_div2_7 is
    	 for a 
    	 end for; 
    end cfg;
    

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dVTcxP47-1592033868995)(G:\研究生\FPGA课程\笔记文档\rec\截图20200613144632.png)]

    分数分频器:

    表 2显示了 2(7/13)的分频次序。仿照小数分频器代码,给出 2(7/13) 分频的代码如下:

    表 2 分数分频系数序列

    序号0123456789101112
    累加值71481591610171118121913
    分频 系数2323232323233
    --file name: clk_div2_7_13.vhd
    --description: 33/13分频
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    entity clk_div2_7 is
    	  port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div2_7;
    architecture b of clk_div2_7 is
     signal clkoutQ: std_logic; 
     signal ctrl: std_logic; 
     signal cnt1: integer range 0  to 1;
     signal cnt2: integer range 0  to 2;
    begin 
    	 clk_out <= clkoutQ; 
    	 process(clkoutQ) 
    		variable tmp: integer range 0 to 26;
    		begin 
    			 if(rising_edge(clkoutQ)) then
    					tmp := tmp + 7; 
    				 if(tmp < 10) then
    						ctrl <= '1'; 
    				 else 
    						ctrl <= '0';
    						tmp := tmp - 13;
    				 end if; 
    			 end if; 
    	 end process;
    		 
    	 process(clk_in) 
    		 begin 
    			 if(clk_in'event and clk_in = '1') then
    				 if(ctrl = '1') then
    					 if(cnt1 < 1) then
    						  cnt1 <= cnt1 + 1;
    					 else
    						  cnt1 <= 0; 
    					 end if; 
    					 if(cnt1 < 1) then
    					     clkoutQ <= '1'; 
    					 else 
    						  clkoutQ <= '0'; 
    					 end if; 
    				 else 
    					 if(cnt2 < 2) then
    							cnt2 <= cnt2 + 1;
    					 else 
    							cnt2 <= 0; 
    					 end if; 
    				 if(cnt2 < 1) then
    					 clkoutQ <= '1';
    				 else 
    					 clkoutQ <= '0'; 
    				 end if; 
    				 end if;
    			  end if; 
    	 end process;
     end b;
     architecture a of clk_div2_7 is
    	 signal cnt: integer range 0 to 12;
    	 signal clkoutQ: std_logic;
    	 signal cnt1: integer range 0 to 1;
    	 signal cnt2: integer range 0 to 2;
    	begin 
    		clk_out <= clkoutQ;
    		process(clkOutQ)
    		  begin 
    			 if(clkoutQ'event and clkoutQ = '1') then
    					if (cnt < 9) then
    					    cnt <= cnt + 1; 
    					else 
    					    cnt <= 0; 
    					end if; 
    			 end if; 
    		end process;
    		process(clk_in) 
    		  begin 
    			 if(clk_in'event and clk_in = '1') then
    				 case cnt is
    					  when 0|2|4|6|8|10 =>
    						  if(cnt1 < 1) then
    							   cnt1 <= cnt1 + 1;
    						  else
    							   cnt1 <= 0;
    						  end if; 
    						  if(cnt1 < 1) then
    								clkoutQ <= '1';
    						  else 
    								clkoutQ <='0';
    						  end if; 
    					  when others =>
    						  if(cnt2 < 2) then
    							  cnt2 <= cnt2 + 1;
    						  else 
    						     cnt2 <= 0; 
    						 end if; 
    						 if(cnt2 < 1) then
    						     clkoutQ <= '1'; 
    						 else 
    						     clkoutQ <= '0';
    						 end if; 
    				 end case; 
    			 end if; 
    		 end process; 
     end a; 
       
    configuration cfg of clk_div2_7 is
    	 for b
    	 end for; 
    end cfg;
    
    

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfWgmGn7-1592033868997)(G:\研究生\FPGA课程\笔记文档\rec\截图20200613151638.png)]

    积分分频器:

    例如,取 m 为 4,N 为 3,当累加 16 次时,累加值为 48,最低 m 位变回到 0,同时越过 16 三次,最高位变化 6 次,由此得到 16/6=8/3 分频的分频器。

    --file name: clk_div8.vhd 
    --description: 使用积分分频实现 8/3 分频
    library ieee; 
    use ieee.std_logic_1164.all; 
    use ieee.std_logic_unsigned.all;
    entity clk_div_8f3 is
      port(clk_in: in std_logic; clk_out: out std_logic);
    end clk_div_8f3;
    architecture a of clk_div_8f3 is
    	  signal cnt: std_logic_vector(3 downto 0) := (others => '0');
    	  signal dly: std_logic;
    	  begin 
    		 process(clk_in)
    		  begin 
    		 if(clk_in'event and clk_in = '1') then
    				 dly <= cnt(3);
    				 cnt <= cnt + 3;
    		  end if; 
    		 end process;
    	  clk_out <= dly xor cnt(3);
     end a;
    

    仿真结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ukv4ZkHL-1592033868998)(G:\研究生\FPGA课程\笔记文档\rec\截图20200613153422.png)]

    展开全文
  • 自制简单LED闪灯电路
  • 本文主要介绍可用于选声控的电路图。
  • 如图所示为简易的高低信号发生器 。用波段开关Sl改变LC谐振回路中的电感值,即可改变高频振荡频率范围。
  • 高频电路之LC串联选频电路

    千次阅读 多人点赞 2019-09-14 17:02:03
    LC串联选频电路 一.缘由 高频电路实现的就是信号的无线传输功能。我们以语音信号传输来说,语音信号要实现传输,自然需要传输的介质,在此我们称之为传导,而传导和传播是不同的,根据互易定理可以知道他们的关系...

    LC串联选频电路

    一.缘由

    高频电路实现的就是信号的无线传输功能。我们以语音信号传输来说,语音信号要实现传输,自然需要传输的介质,在此我们称之为传导,而传导和传播是不同的,根据互易定理可以知道他们的关系。这里我们不多说这个,因为不是很必要。
    信号要传播,就总是需要发出去信号,而发信号和接收信号,很自然,是需要天线的。天线要多高呢,信号的波长是与天线尺寸相比拟的。根据下面这个公式可以计算天线的高度参考值:
    波长与频率的关系
    语音信号的频率范围是20Hz~20kHz,电信中的范围是300Hz-3.4kHz。如果我们按照频率最大值20kHz来计算的话,那么天线高度的参考值就是
    天线高度计算
    你说,谁会给家里栽一个15公里高的天线,这明显不可能。
    但是光速的值是不变的,因此为了减少天线的高度,我们只能增大信号的频率了,这里也就涉及到了频率变换,变成啥样子?变大!
    通常我们使用三角函数来表示信号,这里我们假设是余弦函数cos。数学中有这样的一个变换关系,叫积化和差:
    积化和差公式
    而我们需要的,就是cos(A+B)这个信号的频率A+B。只要他们设计的足够大,天线的长度自然会很小。但是后面的A-B确实不能说不要了,人家就不在了,因此需要选频电路,留下A+B,滤掉A-B。
    而串联谐振电路就是选频电路中的比较简单也常用的一个。下来就说说这个电路的特性以及相关的推导。

    二.LC串联选频电路

    我们知道,电路比较复杂时,需要等效。

    串联电路的等效,用戴维南定理;并联电路的等效,用诺顿定理。

    如图,是我们要研究的对象电路:
    LC串联电路

    不好意思,忘了标了,图中的啥都没标的那个电阻即是电阻Rs。

    根据基尔霍夫电压定律或者欧姆定律我们都可以求出电流i。注意i是小写,大写表示直流,小写表示交流。电路中的电阻有RL、Rs,还有电容和电感的阻抗,等效为虚拟电阻R。根据KVL,可以得:
    电流
    对上式进行分析:
    电流的模值等于
    电流模值
    自变量为角频率w,R为固定值,无论虚部的w是变无穷大还是变无穷小,电流i总是变小。当虚部为零时,分母最小,电流最大。此时的角频率计算如下:
    角频率的·求解
    此时电流有最大值:
    电流最大值
    与角频率相对应,可以计算频率的大小。为了方便记忆,将电路取最大值时的角频率w记为w0,频率记为f0,电流记为Im0:
    参数计算

    注意这里的w0的表达式哦,在下面的长段推导中会用到这个式子的变形。

    在表征电路性能指标参数时,我们可参考下图中各项的参数来求:
    电路参数

    1.图中的fc和fH的中间就是f0,即电流最大值对应的频率值。
    2.关于根号二分之一:
    在无线电技术中,常把U/Um从根号二分之一下降到对应的两个频率的单位成为通频带,对应于-3dB。根二分之一等于0.707或0.7。

    fc和fH表示的是选频滤波器的上下限频率,以此可以计算滤波器的带宽B。图中的电流最大值Im0在上面已经求出来了,下来就是要计算最大值的0.707倍时,带宽B的值。并对此进行拓展,计算Im/Im0为任意比时的带宽B的计算方法。为什么要计算带宽B呢?因为要设计滤波器,而选频的实质就是用滤波器选择想要的频率。下来就做具体的推导了!
    t推导过程
    推导到了这一步,把QL叫做品质因数。下来取近似:当w和w0很接近的时候,认为w约等于w0。在此基础上,有原式等于:
    约等于

    注:对上式的w和w0都除以2兀,便转化为了频率f。
    而B=2(f-f0),因此就可以化为带宽的求解了。

    至此,令上式等于根二分之一,就可以解得:
    带宽

    B0.7指定的就是通频带带宽。0.7就是根二分之一。

    并根据推导过程中的步骤,可以知道品质因数为:
    品质因数
    以上的内容就是串连谐振电路的基本参数的求解。

    • 可以看到,当串联电路谐振时,电路的电流有最大值,为什么呢,因为此时电感和电容的阻抗相互抵消了,为什么抵消了,你去看看w0是怎么计算出来的,就明白了。并且谐振时,电路中的R就是唯一的计算实际用到比较多的电阻了。但是R一般是肉眼看不到的,要得到R的值,一般要利用品质因数Q。所以Q的表达式也很重要了。
    • 总之,只要明白了串联电路何时谐振,谐振后,电路会怎样,参数什么的都会有什么变化,就差不多没问题了。

    这些参数都是设计选频电路时的重要指标。不过大多数人看到这篇文章的,应该更多的是怎么用它来做题吧,所以就拿个题来说下。

    给定串联谐振回路的f0=1.5MHz,C0=100pF。谐振时电阻R=50欧姆,试求Q0和L0。又若信号源电压振幅Vsm=1mV,求谐振回路中的电流I0以及回路原件上的电压VLom和VCom。

    分析:谐振时的频率给出来了,自然可以知道角频率。再依据谐振时的角频率就可以算出电感的值L。再依据品质因数表达式就可以算出品质因数Q0。最后利用串联谐振回路的电感和电容相互抵消的特性,就可以计算出回路原件上的电压了。不过这里涉及到了相量的计算,注意计算就好了。

    计算过程求解:
    计算过程

    至此,串联谐振回路的基本知识就说这些了。
    有问题的话,希望各位指出,谢谢。
    另外,我是J.GMson,附我的QQ:1197658381。

    展开全文
  • 三分频电路

    千次阅读 2021-09-13 10:27:49
    思路 占空比不为50%的分频器 目录 思路 占空比不为50%的分频器 方案1 方案2 方案3 占空比为50%的三分频电路 思路 : 00,01,10,在00,01的时候为低,10的时候为高,需要用到寄存器,加法器,比较器 其实计数器...

    思路 占空比不为50%的分频器

    目录

    思路 占空比不为50%的分频器

    方案1

    方案2 

    方案3 占空比为50%的三分频电路

    思路


            00,01,10,在00,01的时候为低,10的时候为高,需要用到寄存器,加法器,比较器

    其实计数器就是由这三部分组成

    方案1

            RTL

    微信图片_20210913101419.jpg

            code

            

    module fenpin3(clk,rst,clk_3);
        input wire clk,rst;
        output wire clk_3;
        
        reg [1:0]count;
        always@(posedge clk, posedge rst)begin
            if(rst)
                count<=0;
            else
                if(count==2'b10)
                    count<=0;
                else
                    count<=count+1'b1;
        end
        
        assign clk_3=(count==2'b10)?1'b1:1'b0;
        
    endmodule

    这种方案的缺点就是输出和时钟沿有一级组合电路的延时

    方案2 

            RTL

            

    微信图片_20210913102214.jpg

    code

    module fenpin3(clk,rst,clk_3
    
        );
        input wire clk,rst;
        output reg clk_3;
        reg [1:0]count;
        
        always@(posedge clk,posedge rst)begin
            if(rst)
                count<=0;
            else
                if(clk_3)
                    count<=0;
                else
                    count<=count+1'b1;
        end
        
        always@(posedge clk, posedge rst)begin
            if(rst)
                clk_3<=0;
            else if(count==2'b01)
                clk_3<=1'b1;
            else
                clk_3<=1'b0;
        end
        
        
    endmodule

    RTL仿真

    1631499965(1).png

    方案3 占空比为50%的三分频电路

    思路:

    首先利用上升沿做一个占空比为1/3的三分频电路(占空比不为50%的分频器其实就是一个计数器,参考上面方案),

    然后利用下降沿做一个占空比为1/3的三分频电路

    然后将两个信号相或(或者两个占空比为2/3的三分频相与)

    code

     

    // 占空比为50%的三分频电路
    // 想一下其他奇分频的电路应该如何设计
    module div3(clk, rst_n, clk_3
    
        );
        input clk,rst_n;
        output clk_3;
        wire clk,rst_n;
        wire clk_3;
    
        reg [1:0]count_pos,count_neg;
        always @(posedge clk, negedge rst_n) begin
            if(!rst_n)
                count_pos<=2'b00;
            else
                if(count_pos==2'b10)
                    count_pos<=2'b00;
                else
                    count_pos<=count_pos+1'b1;
        end
        always @(negedge clk, negedge rst_n) begin
            if(!rst_n)
                count_neg<=2'b00;
            else
                if(count_neg==2'b10)
                    count_neg<=2'b00;
                else
                    count_neg<=count_neg+1'b1;        
        end
        assign clk_3 = count_neg[1] || count_pos[1];
    
    endmodule
    

    仿真结果

     

            

            

    展开全文
  • 文章简单介绍了相敏检波电路的选与鉴相特性
  • 三分频电路,利用时钟上升沿产生一个占空比为1/3的时钟信号clk1,利用时钟下降沿产生一个占空比为1/3的时钟信号clk2,二者或,得到三分频电路
  • 传统的用分立元件搭制检测电路的方法将无法适应传感器电容不断减小的趋势,因此设计匹配的接口集成电路十分必要的。常用的低值电容测量电路都是把电容的变化转变为电压或频率。目前大多数国外MEMS传感器厂家采用...
  • 本设计分享的是基于LM567声控开关/声音选模块设计,并附上原理图和PCB源文件,方便网友自己DIY制作。该LM567声控开关/声音选模块主要用于声控灯,配合光敏传感器做声光...LM567声控开关/声音选模块电路 PCB截图:
  • 一种激光稳频电路

    2021-02-09 02:23:42
    The characteristics of the error signal in a laser frequency stabilizer are discussed. A new method for controlling the length of laser cavity is presented. The relative stability for the two-...
  • 高频电子线路 第二讲 选频电路
  • 摘要:首先分析了应用于倍频电路的预置可逆分器的工作原理,推导了触发器的驱动函数。  并建立了基于simulink 和FPGA 的分器模型,实验结果表明分器可以实现预置模和可逆分频功能,满足倍频电路需要。  1....
  • 本文给大家分享了一个分频比可调的分电路

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,444
精华内容 9,777
关键字:

十分频电路