您的位置:首页 > 文旅 > 美景 > 室内设计学校全国排名_河南现在有疫情吗_windows优化大师靠谱吗_长沙网站推广排名优化

室内设计学校全国排名_河南现在有疫情吗_windows优化大师靠谱吗_长沙网站推广排名优化

2025/1/1 21:49:46 来源:https://blog.csdn.net/gw123456780/article/details/144694183  浏览:    关键词:室内设计学校全国排名_河南现在有疫情吗_windows优化大师靠谱吗_长沙网站推广排名优化
室内设计学校全国排名_河南现在有疫情吗_windows优化大师靠谱吗_长沙网站推广排名优化

分享个人觉得有意思的知识:

  1. 什么样的时钟 会输入到 锁相环里
    在这里插入图片描述

  2. 锁相环框图 VCO 控制电压控制频率 DS182 可以查看 VCO 范围
    a. 先生成高频 的 VCO
    b. 再通过 倍频和分频 产生具体各路时钟
    c.在这里插入图片描述

  3. 怎么控制 输出频率?XAPP888
    a. high time 是VCO 高电平 持续周期
    b. low time 是 VCO 低电平持续周期
    c. no count 是 VCO时钟周期的计数
    d. edge 将high time 再扩展半个vco 周期 ,可以用来奇数分频 变成 50%占空比
    e. high time 和 low time的 和 是 分频值

  4. 控制相位
    b. 八个可变调节 以 45°为步长
    c. 如果需要 20°就需要使用delay time
    d. vco 频率越高,分频系数越高,相位越精细,如果是 10分频那么VCO输出一周期就是便宜360/10 = 36°

  5. 小数分频
    在这里插入图片描述

  6. 时序图:

在这里插入图片描述

  1. 代码:
    此代码 配置 其中的一个时钟输出,首先读出对于寄存器,然后设置,再读出对比寄存器值,观察是否设置成功,可以使用 LED 观察现象。

代码分享

`timescale 1ns / 1ps
module drp(input               i_clk           ,input               i_rst           ,output [6 :0]       o_daddr         ,   output              o_dclk          ,   output              o_den           ,     output [15:0]       o_din           ,output              o_dwe           ,     input  [15:0]       i_dout          ,  input               i_drdy          ,output              o_mmcm_rst      );localparam              P_CLKOUT0_REG1_ADDR = 16'h08    ;
localparam [5 :0]       P_HIGN_TIME         = 6'd10     ;
localparam [5 :0]       P_LOW_TIME          = 6'd10     ;localparam              P_ST_IDLE     = 0   ,P_ST_RST      = 1   ,P_ST_RREG     = 2   ,P_ST_WRDY     = 3   ,P_ST_SET      = 4   ,P_ST_WAIT_RDY = 5   ,P_ST_2RREG    = 6   ,P_ST_2WRDY    = 7   ,P_ST_END      = 8   ;reg  [7 :0]             r_st_current    ;
reg  [7 :0]             r_st_next       ;
reg  [15:0]             r_st_cnt        ;reg  [6 :0]             ro_daddr        ;
reg                     ro_dclk         ;
reg                     ro_den          ;
reg  [15:0]             ro_din          ;
reg                     ro_dwe          ;
reg                     ro_mmcm_rst     ;
(* MARK_DEBUG = "TRUE" *)reg  [15:0]             r_clkout0_reg1  ;
(* MARK_DEBUG = "TRUE" *)reg  [15:0]             r_clkout0_2reg1 ;
reg  [1 :0]             r_rdy           ;assign o_daddr      = ro_daddr          ;
assign o_dclk       = ro_dclk           ;
assign o_den        = ro_den            ;
assign o_din        = ro_din            ;
assign o_dwe        = ro_dwe            ;
assign o_mmcm_rst   = ro_mmcm_rst       ;always@(posedge i_clk,posedge i_rst)
beginif(i_rst)r_st_current <= P_ST_IDLE;else r_st_current <= r_st_next;
endalways@(*)
begincase(r_st_current)P_ST_IDLE       : r_st_next = r_st_cnt == 20000 ? P_ST_RST  : P_ST_IDLE ;P_ST_RST        : r_st_next = r_st_cnt == 20    ? P_ST_RREG : P_ST_RST  ;P_ST_RREG       : r_st_next = P_ST_WRDY;P_ST_WRDY       : r_st_next = r_rdy[1]          ? P_ST_SET  : P_ST_WRDY ;P_ST_SET        : r_st_next = P_ST_WAIT_RDY;P_ST_WAIT_RDY   : r_st_next = r_rdy[1]          ? P_ST_2RREG  : P_ST_WAIT_RDY;P_ST_2RREG      : r_st_next = P_ST_2WRDY;P_ST_2WRDY      : r_st_next = r_rdy[1]          ? P_ST_END    : P_ST_2WRDY;P_ST_END        : r_st_next = P_ST_END;default         : r_st_next = P_ST_IDLE;endcase
endalways@(posedge i_clk,posedge i_rst)
beginif(i_rst)r_st_cnt <= 'd0;else if(r_st_current != r_st_next)r_st_cnt <= 'd0;else r_st_cnt <= r_st_cnt + 1;
endalways@(posedge i_clk,posedge i_rst)
beginif(i_rst)ro_mmcm_rst <= 'd0;else if(r_st_current == P_ST_END)ro_mmcm_rst <= 'd0;else if(r_st_current == P_ST_RST)ro_mmcm_rst <= 'd1;else ro_mmcm_rst <= ro_mmcm_rst;
endalways@(posedge i_clk,posedge i_rst)
beginif(i_rst) beginro_daddr <= 'd0;ro_den   <= 'd0;ro_din   <= 'd0;ro_dwe   <= 'd0;end else if(r_st_current == P_ST_RREG || r_st_current == P_ST_2RREG) begin ro_daddr <= P_CLKOUT0_REG1_ADDR;ro_den   <= 'd1;ro_din   <= 'd0;ro_dwe   <= 'd0;end else if(r_st_current == P_ST_SET) begin ro_daddr <= P_CLKOUT0_REG1_ADDR;ro_den   <= 'd1;ro_din   <= (r_clkout0_reg1 | 16'b0000_1111_1111_1111) & {4'b1111,P_HIGN_TIME,P_LOW_TIME};ro_dwe   <= 'd1;end else beginro_daddr <= 'd0;ro_den   <= 'd0;ro_din   <= 'd0;ro_dwe   <= 'd0;end
endalways@(posedge i_clk,posedge i_rst)
beginif(i_rst)r_rdy <= 'd0;else r_rdy <= {r_rdy[0],i_drdy};
endalways@(posedge i_clk,posedge i_rst)
beginif(i_rst)r_clkout0_reg1 <= 'd0;else if(r_st_current == P_ST_WRDY && i_drdy)r_clkout0_reg1 <= i_dout;else r_clkout0_reg1 <= r_clkout0_reg1;
endalways@(posedge i_clk,posedge i_rst)
beginif(i_rst)r_clkout0_2reg1 <= 'd0;else if(r_st_current == P_ST_2WRDY && i_drdy)r_clkout0_2reg1 <= i_dout;else r_clkout0_2reg1 <= r_clkout0_2reg1;
end
endmodule

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com