时钟资源(参考ug472)

目录

  • 时钟资源(参考ug472)
    • 7系列 FPGA 时钟连接差异
    • 时钟资源连接关系表
    • 时钟资源连接示意图
    • 不同时钟区域资源连接图
    • Clock-Capable Inputs
      • 介绍
      • 布局规则
    • 全局时钟 buffer
      • BUFGCTRL
        • 介绍
        • 原语
        • 参数及端口
          • INIT_OUT
          • PRESELECT_I0/1
          • I0/1
          • CE0/1
          • S0/1
          • IGNORE0/1
        • 真值表
        • 时序
      • BUFG
      • BUFGCE,BUFGCE_1
        • 原语
        • 时序
      • BUFGMUX,BUFGMUX_1
        • 原语
        • 时序
      • BUFGMUX_CTRL
        • 原语
        • 时序
      • Asynchronous MUX with BUFGCTRL
      • BUFGMUX_CTRL with a Clock Enable
    • BUFIO
    • BUFR
      • 原语
      • 参数及端口
        • BUFR_DIVIDE
        • CE
        • CLR
      • 时序
      • 驱动
    • BUFMR,BUFMRCE
      • 原语
      • Driving Multiple BUFIOs
      • Driving Multiple BUFRs
      • Driving Multiple BUFRs (with Divide) and BUFIO
      • Driving Multiple BUFRs (With and Without Divide)
      • BUFR Alignment
    • BUFH/BUFHCE
      • 原语
    • Stacked Silicon Interconnect Clocking
    • CMT
      • MMCM
        • 输出时钟频率计算公式
        • 结构图
        • 原语
        • 参数
          • BANDWIDTH
          • CLKOUT[1:6]_DIVIDE
          • CLKOUT[0]_DIVIDE_F
          • CLKOUT[0:6]_PHASE
          • CLKOUT[0:6]_DUTY_CYCLE
          • CLKFBOUT_MULT_F
          • DIVCLK_DIVIDE
          • CLKFBOUT_PHASE
          • REF_JITTER1,2
          • CLKIN1_PERIOD,CLKIN2_PERIOD
          • CLKFBOUT_USE_FINE_PS
          • CLKOUT0_USE_FINE_PS
          • CLKOUT[1:6]_USE_FINE_PS
          • STARTUP_WAIT
          • CLKOUT4_CASCADE
          • COMPENSATION
          • SS_EN
          • SS_MODE
          • SS_MOD_PERIOD
        • 端口
          • CLKIN1,CLKIN2
          • CLKFBIN
          • CLKINSEL
          • RST
          • PWRDWN
          • DADDR[6:0],D[15:0],DWE,DEN,DCLK,DO[15:0],DRDY
          • PSCLK,PSEN,PSINCDEC,PSDONE
          • CLKOUT[0:6]
          • CLKOUT[0:3]B
          • CLKFBOUT
          • CLKFBOUTB
          • CLKINSTOPPED
          • CLKFBSTOPPED
          • LOCKED
      • PLL
        • 结构图
        • 原语
        • 参数及端口
    • 参考资料

时钟资源(参考ug472)

7系列 FPGA 时钟连接差异

时钟资源连接关系表

在这里插入图片描述

在这里插入图片描述

时钟资源连接示意图

  • BUFG 不属于任何一个时钟区域,且可以到达所有时钟区域
  • 通常每个时钟区域包含多列 CLB,RAM,DSP( 50 个 CLB 每列,10 个 36K BRAM 每列,20 个 DSP 每列),12 个 BUFH,1 个 CMT(PLL/MMCM)
  • BUFIO 只能驱动 I/O 时钟资源(ILOGIC/OLOGIC)
  • BUFR 不仅可以驱动 I/O 资源,还能驱动逻辑资源

在这里插入图片描述

在这里插入图片描述

  • BUFG 也可以驱动 BUFH(下图没有画出来)
  • BUFG 和 BUFH 共享 HROW 的12 路布线资源
  • 每个 GT quad 包含 10 路布线资源用于驱动 CMT 和 clock backbone 的时钟 buffer(BUFG,BUFH)
  • 同一时钟区域的时钟资源(CMT,CC,GT)可以通过 BUFH 驱动水平相邻的时钟区域

在这里插入图片描述

不同时钟区域资源连接图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Clock-Capable Inputs

介绍

  • clock-capable(CC)inputs,主要用于从 FPGA 外部输入时钟信号,也可以当中普通 I/O 使用

  • 每个 I/O bank 对应一个时钟区域,包含 50 个 I/O,其中包含 4 对 CC 引脚(2 对 SRCC + 2 对 MRCC),每对 CC 引脚又分为 master 和 slave(对应差分信号的 P 和 N 端口)

  • 若使用单端时钟信号输入,则连接 P 端口,而该对 CC 引脚的 N 端口此时只能作为普通 I/O 使用

  • SRCC(single-region clock-capable I/O)可以驱动:

    • 同一 bank 的 4 个 BUFIO、4 个 BUFR、2 个 BUFMR
    • 同一 bank 和上下相邻两个 bank 的 CMT(1 个 CMT 包含 1 个 MMCM 和 1 个 PLL)
    • 同一侧(上或下)的 16 个 BUFG
    • 同一 bank 和水平相邻 bank 的 BUFH
  • MRCC(multi-region clock-capable I/O)相比 SRCC 增加了可以驱动同一 bank 的 2 个 BUFMR

  • 每个 CCIO 所能连接的 BUFIO 和 BUFMR 位置是固定的

  • 驱动上下相邻两个 bank 的 CMT 需要增加如下约束:

    • 驱动 CMT 的专用布线资源是有限的,若要连接的 CMT 有专用布线资源,则约束:

      set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets net_name]
      
    • 若要连接的 CMT 没有专用布线资源或者该时钟信号不是从 CC 引脚输入,则约束:

      set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets net_name]
      

      注:Nets (get_nets) directly connected to the input of a global clock buffer (BUFG, BUFGCE, BUFGMUX, BUGCTRL)

布局规则

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

全局时钟 buffer

在这里插入图片描述

BUFGCTRL

介绍
  • 用于异步时钟切换
  • 其他所有全局时钟 buffer 都是基于 BUFGCTRL 更改的
原语

在这里插入图片描述

// BUFGCTRL: Global Clock Control Buffer
//           Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFGCTRL #(
  .INIT_OUT(0),           // Initial value of BUFGCTRL output ($VALUES;)
  .PRESELECT_I0("FALSE"), // BUFGCTRL output uses I0 input ($VALUES;)
  .PRESELECT_I1("FALSE")  // BUFGCTRL output uses I1 input ($VALUES;)
)
BUFGCTRL_inst (
  .O(O),             // 1-bit output: Clock output
  .CE0(CE0),         // 1-bit input: Clock enable input for I0
  .CE1(CE1),         // 1-bit input: Clock enable input for I1
  .I0(I0),           // 1-bit input: Primary clock
  .I1(I1),           // 1-bit input: Secondary clock
  .IGNORE0(IGNORE0), // 1-bit input: Clock ignore input for I0
  .IGNORE1(IGNORE1), // 1-bit input: Clock ignore input for I1
  .S0(S0),           // 1-bit input: Clock select for I0
  .S1(S1)            // 1-bit input: Clock select for I1
);

// End of BUFGCTRL_inst instantiation
参数及端口
INIT_OUT
  • 属性值:0(default)| 1
  • 指定 FPGA 加载后的 BUFGCTRL 初始输出值以及时钟切换过程中的输出值
  • 设置上升沿切换条件(1)或下降沿切换条件(0)
PRESELECT_I0/1
  • 设置 FPGA 加载后至设备工作之前的使用 I0 还是 I1 作为输出时钟
  • TRUE 为使能,两个参数不能同时为 TRUE
I0/1
  • 时钟输入
CE0/1
  • 时钟使能信号,高有效,需要满足建立保持时间
  • 可以将 S0/1 都置 1,只通过 CE 信号进行时钟切换,不需要等待之前时钟的下降沿或上升沿条件
S0/1
  • 时钟选择信号,高有效,没有建立保持时间要求,建议使用该信号实现时钟切换功能
IGNORE0/1
  • 忽略时钟切换条件,高有效(根据 INIT_OUT 参数值,需要检测到当前时钟的上升沿 1 或者下降沿 0 才能进行时钟切换)
  • 该信号置位会导致 glitch 保护功能禁用,也就是可能会产生 glitch
真值表

时序

在这里插入图片描述

  • 时刻 3 后 TBCCK_O 时间后,输出时钟由 I0 切换至 I1。时刻 3 是发生在 CE 和 S 切换后,检测到 I0 时钟的下降沿且后续检测到 I1 的上升沿时刻
  • 时刻 4 将 IGNORE1 置 1,也就是 I1 切换为 I0 时不需要检测 I1 的下降沿这个前置条件

BUFG

在这里插入图片描述

BUFGCE,BUFGCE_1

原语

// BUFGCE: Global Clock Buffer with Clock Enable
//         Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFGCE BUFGCE_inst (
  .O(O),   // 1-bit output: Clock output
  .CE(CE), // 1-bit input: Clock enable input for I0
  .I(I)    // 1-bit input: Primary clock
);

// End of BUFGCE_inst instantiation
// BUFGCE_1: Global Clock Buffer with Clock Enable and Output State 1
//           Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFGCE_1 BUFGCE_1_inst (
.O(O),   // 1-bit output: Clock output
.CE(CE), // 1-bit input: Clock enable input for I0
.I(I)    // 1-bit input: Primary clock
);

// End of BUFGCE_1_inst instantiation
时序

在这里插入图片描述

  • BUFGCE:
    • CE 只有在时钟低电平切换才有效
    • CE 拉低后,默认输出低电平
  • BUFGCE_1:
    • CE 只有在时钟高电平切换才有效
    • CE 拉低后,默认输出高电平

BUFGMUX,BUFGMUX_1

  • 通过控制 CE 信号实现时钟切换功能,CE 信号时序必须满足要求
  • 原语只有 UltraScale+ 才有参数,7系列没有参数
原语

在这里插入图片描述

// BUFGMUX: Global Clock Mux Buffer
//          Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFGMUX #(
)
BUFGMUX_inst (
  .O(O),   // 1-bit output: Clock output
  .I0(I0), // 1-bit input: Clock input (S=0)
  .I1(I1), // 1-bit input: Clock input (S=1)
  .S(S)    // 1-bit input: Clock select
);

// End of BUFGMUX_inst instantiation
// BUFGMUX_1: Global Clock Mux Buffer with Output State 1
//            Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFGMUX_1 #(
)
BUFGMUX_1_inst (
  .O(O),   // 1-bit output: Clock output
  .I0(I0), // 1-bit input: Clock input (S=0)
  .I1(I1), // 1-bit input: Clock input (S=1)
  .S(S)    // 1-bit input: Clock select
);

// End of BUFGMUX_1_inst instantiation
时序

在这里插入图片描述

BUFGMUX_CTRL

  • 通过控制 S 信号实现时钟切换功能
原语

在这里插入图片描述

// BUFGMUX_CTRL: 2-to-1 Global Clock MUX Buffer
//               Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFGMUX_CTRL BUFGMUX_CTRL_inst (
  .O(O),   // 1-bit output: Clock output
  .I0(I0), // 1-bit input: Clock input (S=0)
  .I1(I1), // 1-bit input: Clock input (S=1)
  .S(S)    // 1-bit input: Clock select
);

// End of BUFGMUX_CTRL_inst instantiation
时序

在这里插入图片描述

  • S 信号可以在任何时刻变化,最多 3 个时钟周期(慢时钟)就能完成时钟切换
  • 上图为 S 信号在时钟高电平时切换;S 信号在时钟高电平时切换的时序见 BUFGCTRL 时序章节

Asynchronous MUX with BUFGCTRL

在这里插入图片描述

在这里插入图片描述

BUFGMUX_CTRL with a Clock Enable

在这里插入图片描述

在这里插入图片描述

BUFIO

具体连接关系表见 “时钟资源连接关系表” 章节

BUFR

原语

// BUFR: Regional Clock Buffer for I/O and Logic Resources within a Clock Region
//       Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFR #(
  .BUFR_DIVIDE("BYPASS"),   // Values: "BYPASS, 1, 2, 3, 4, 5, 6, 7, 8" 
  .SIM_DEVICE("7SERIES")  // Must be set to "7SERIES" 
)
BUFR_inst (
  .O(O),     // 1-bit output: Clock output port
  .CE(CE),   // 1-bit input: Active high, clock enable (Divided modes only)
  .CLR(CLR), // 1-bit input: Active high, asynchronous clear (Divided modes only)
  .I(I)      // 1-bit input: Clock buffer input driven by an IBUF, MMCM or local interconnect
);

// End of BUFR_inst instantiation

参数及端口

BUFR_DIVIDE
  • 输出时钟分频系数设置
  • 属性值:BYPASS(default), 1, 2, 3, 4, 5, 6, 7, 8
  • BUFR 输出延迟:BYPASS 最小,其余都一样且比 BYPASS 大
  • BUFR 输入与输出相位关系:除了 BYPASS,其余都一样
CE
  • 异步输出时钟使能,高有效,BYPASS 下不能使用
  • 若 GSR 置位,则BUFR 处于复位状态
CLR
  • 异步清除信号,高有效,BYPASS 下不能使用
  • 置位后输出低电平
  • 若输入时钟变化,则需要置位 CLR 进行复位

时序

在这里插入图片描述

  • 奇分频输出时钟占空比不是 50/50

驱动

在这里插入图片描述
在这里插入图片描述

BUFMR,BUFMRCE

  • 使用 MRCC 驱动 BUFMR,只能使用 MRCC 的 P 端口

在这里插入图片描述

原语

在这里插入图片描述

// BUFMR: Multi-Region Clock Buffer
//        Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFMR BUFMR_inst (
  .O(O), // 1-bit output: Clock output (connect to BUFIOs/BUFRs)
  .I(I)  // 1-bit input: Clock input (Connect to IBUF)
);

// End of BUFMR_inst instantiation
// BUFMRCE: Multi-Region Clock Buffer with Clock Enable
//          Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFMRCE #(
  .CE_TYPE("SYNC"), // SYNC, ASYNC
  .INIT_OUT(0)      // Initial output and stopped polarity, (0-1)
)
BUFMRCE_inst (
  .O(O),   // 1-bit output: Clock output (connect to BUFIOs/BUFRs)
  .CE(CE), // 1-bit input: Active high buffer enable
  .I(I)    // 1-bit input: Clock input (Connect to IBUF)
);

// End of BUFMRCE_inst instantiation

注:参数 INIT_OUT 同 BUFGCTRL 参数

Driving Multiple BUFIOs

  • 虽然 BUFR 也可以驱动 I/O logic,但是 BUFIO 性能更高

在这里插入图片描述

Driving Multiple BUFRs

在这里插入图片描述

Driving Multiple BUFRs (with Divide) and BUFIO

在这里插入图片描述

Driving Multiple BUFRs (With and Without Divide)

  • 若 BUFIO 不够使用,可以使用纯 BUFR 驱动 ISERDES/OSERDES

在这里插入图片描述

BUFR Alignment

  • 当 BUFR 非 BYPASS 模式时,必须进行多个 BUFR 间输出时钟相位对齐操作,具体操作如下:
    1. 拉低 BUFMRCE 的 CE 信号,禁止 BUFMRCE 的输出
    2. 同时置位所有 BUFR 的 CLR 信号对 BUFR 进行复位
    3. 重新置位 BUFMRCE 的 CE 信号,使能 BUFMRCE 的输出
    4. 同时拉低所有 BUFR 的 CLR 信号对 BUFR 进行复位释放
  • 若要禁用所有 BUFR 的时钟输出,需先置位所有 BUFR 的 CLR 信号对 BUFR 进行复位,然后再拉低 BUFMRCE 的 CE 信号,禁止 BUFMRCE 的输出

BUFH/BUFHCE

具体连接关系表见 “时钟资源连接关系表” 章节

原语

// BUFH: HROW Clock Buffer for a Single Clocking Region
//       Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFH BUFH_inst (
  .O(O), // 1-bit output: Clock output
  .I(I)  // 1-bit input: Clock input
);

// End of BUFH_inst instantiation
// BUFHCE: HROW Clock Buffer for a Single Clocking Region with Clock Enable
//         Kintex-7
// Xilinx HDL Language Template, version 2020.1

BUFHCE #(
  .CE_TYPE("SYNC"), // "SYNC" (glitchless switching) or "ASYNC" (immediate switch)
  .INIT_OUT(0)      // Initial output value (0-1)
)
BUFHCE_inst (
  .O(O),   // 1-bit output: Clock output
  .CE(CE), // 1-bit input: Active high enable
  .I(I)    // 1-bit input: Clock input
);

// End of BUFHCE_inst instantiation

Stacked Silicon Interconnect Clocking

  • There are 32 global clock buffers (BUFGs) and 32 global clock lines (the clock backbone) in each super logic region (SLR).
  • 关于多个 SLR 更详细开发说明见 Xilinx Large FPGA Methodology Guide (UG872)

在这里插入图片描述

CMT

  • In 7 series FPGAs, the clock management tile (CMT) includes a mixed-mode clock manager (MMCM) and a phase-locked loop (PLL). The PLL contains a subset of the MMCM functions.
  • CLKFB 不能连接 GT 时钟

在这里插入图片描述

MMCM

输出时钟频率计算公式

在这里插入图片描述

  • M 对应参数 CLKFBOUT_MULT_F
  • D 对应参数 DIVCLK_DIVIDE
  • O 对应参数 CLKOUT_DIVIDE
结构图

在这里插入图片描述

原语

在这里插入图片描述

参数
BANDWIDTH
  • 影响抖动、相位裕度等 MMCM 参数

  • 属性值:HIGH | LOW | OPTIMIZED(default)

CLKOUT[1:6]_DIVIDE
  • 对应输出时钟频率计算公式里的 O
  • 属性值:整数 1 ~ 128,默认 1
CLKOUT[0]_DIVIDE_F
  • 对应输出时钟频率计算公式里的 O,MMCM 的 CLKOUT0 支持小数分频
  • 属性值:
    • 整数 1 ~ 128,默认 1
    • 实数 2.000 ~ 128.000,步进值 0.125
CLKOUT[0:6]_PHASE
  • 输出时钟功能相位
  • 属性值:-360.000 ~ 360.000,默认 0.0,具体参考步进值参考ug472-7 Series FPGAs Clocking Resources User Guide Limitations 章节
CLKOUT[0:6]_DUTY_CYCLE
  • 输出时钟占空比
  • 属性值:0.01 ~ 0.99,默认 0.50
CLKFBOUT_MULT_F
  • 对应输出时钟频率计算公式里的 M
  • 属性值:2 ~ 64 或 2.000 ~ 64.000,步进值 0.125,默认 5
DIVCLK_DIVIDE
  • 对应输出时钟频率计算公式里的 D
  • 属性值:1 ~ 106,默认 1
CLKFBOUT_PHASE
  • 改变反馈时钟相位,进而改变所有 MMCM 的输出时钟产生负相移
  • 属性值:0.00 ~ 360.00,默认0.0
REF_JITTER1,2
  • 只用于仿真
  • 属性值:0.000 ~ 0.999,默认0.010
CLKIN1_PERIOD,CLKIN2_PERIOD
  • 属性值:0.938 ~ 100.00,默认 0.000,单位 ps
CLKFBOUT_USE_FINE_PS
CLKOUT0_USE_FINE_PS
CLKOUT[1:6]_USE_FINE_PS
STARTUP_WAIT
CLKOUT4_CASCADE
COMPENSATION
  • 输入时钟补偿
SS_EN
  • 扩频功能使能
SS_MODE
SS_MOD_PERIOD
端口
CLKIN1,CLKIN2
  • 输入时钟,输入源见 “时钟资源连接关系表” 章节
CLKFBIN
  • 反馈时钟输入
  • 输入源:当前 MMCM 的 CLKFBOUT,IBUG,BUFG,BUFH

注意:为了与外部输入时钟对齐,反馈时钟连接的 buffer 类型需同外部输入时钟一样(除了 BUFR,BUFR 无法补偿)

CLKINSEL
  • 输入时钟选择,1 = CLKIN1,0 = CLKIN2

注意:切换时钟后需对 MMCM 进行复位操作

RST
  • 异步复位,MMCM 内部会做同步释放处理
PWRDWN
DADDR[6:0],D[15:0],DWE,DEN,DCLK,DO[15:0],DRDY
  • 动态配置接口,不使用该功能时 DADDR[6:0],D[15:0],DWE,DEN,DCLK 全部置 0
PSCLK,PSEN,PSINCDEC,PSDONE
  • 动态相移配置接口
CLKOUT[0:6]
  • 输出时钟
CLKOUT[0:3]B
  • 输出反相时钟
CLKFBOUT
  • 反馈时钟
CLKFBOUTB
  • 反馈时钟反相输出,该信号不能作为反馈信号输入到 MMCM
CLKINSTOPPED
  • 输入时钟状态指示
  • 当输入时钟消失,一个时钟内会置位该信号;当输入时钟恢复且 LOCKED 置位,该信号拉低
CLKFBSTOPPED
  • 反馈时钟状态指示
  • 当反馈时钟消失,一个时钟内会置位该信号;当反馈时钟恢复且 LOCKED 置位,该信号拉低
LOCKED
  • 指示当前时钟频率及相位在预设误差范围内,可以使用
  • FPGA 上电后会自动 LOCK,不需要进行复位操作
  • 加载成功后,若 LOCKED 拉低,则必须进行 MMCM 复位操作,且在 LOCKED 置位前不能使用该时钟

PLL

结构图

在这里插入图片描述

原语

在这里插入图片描述

参数及端口
  • 基本同 MMCM 作用相同,具体详见 ug472-7 Series FPGAs Clocking Resources User Guide

参考资料

  • ug472-7 Series FPGAs Clocking Resources User Guide

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/780461.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

日本服务器托管需要注意哪些问题

日本服务器托管是一项涉及多方面因素的重要决策,为了确保托管服务的稳定、高效与安全,企业或个人在托管过程中需要注意以下几个关键问题: 首先,数据中心的基础设施建设标准是决定托管稳定性的关键。这包括数据中心的建筑抗震、抗洪…

单片机关键任务优先级的实现学习

与总体产品联调时,需要各个单机系统严格按照总体要求,进行数据输出,时间的偏差将出现系统异常,控制失败等不稳定情况产生,甚至影响到产品安全。 因此必须确保某些关键任务的优先执行。单片机任务优先级一般有两种方式…

Java 基础知识之 switch 语句和 yield 关键字

传统 switch 语句 传统的 switch 语句我们已经写了一万遍了,以下是一个典型的 switch 语句: int dayOfWeek 3; switch (dayOfWeek) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case…

STM32-I2C

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. I2C通信1.1 I2C通信简介1.2 硬件电路1.3 I2C时序基本单元1.3.1 起始条件和终止条件1.3.2 发送一个字节1.3.3 接收一个字节1.3.4 发送应答和接收应答 1.4 I2C时序1.4.1 指定地址写1.4.2 当前地址读1.4.3 指定地址读…

Java应用系统设计与实现--学生信息管理系统(附解决方案源码)

一、实验目的及要求 1.1实验目的 掌握Java GUI编程技术,了解Swing框架的使用。 掌握MySQL数据库的基本操作,了解如何在Java中连接和操作数据库。 掌握用户权限管理的基本概念和实现方法。 提升综合运用所学知识设计和实现一个完整应用系统的能力…

QThread moveToThread的妙用

官方文档描述 总结就是移动到线程的对象不能有父对象,执行start即起一个线程,示例是将myObject移动到主线程中。QT中这种方式起一个线程是非常简单的。 示例描述以及代码 描述往Communicate线程中频繁添加任务,等任务结束的时候统计计算的结…

【python教程】数据分析——numpy、pandas、matplotlib

【python教程】数据分析——numpy、pandas、matplotlib 文章目录 什么是matplotlib安装matplotlib,画个折线 什么是matplotlib matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 安装matplotlib&…

Node 中基于 Koa 框架的 Web 服务搭建实战

前言 在《Node之Web服务 - 掘金 (juejin.cn)》一文中,我们使用 HTTP 模块构建了后端接口,从而实现了后端服务的开发。可以对此进行进一步优化 http模块代码回顾 const http require("http");const server http.createServer((req, res) > {if (reqUrl.pathna…

【面试八股文】java基础知识

引言 本文是java面试时的一些常见知识点总结归纳和一些拓展,笔者在学习这些内容时,特地整理记录下来,以供大家学习共勉。 一、数据类型 1.1 为什么要设计封装类,Integer和int区别是什么? 使用封装类的目的 对象化:…

阶段三:项目开发---搭建项目前后端系统基础架构:任务13:实现基本的登录功能

任务描述 任务名称: 实现基本的登录功能 知识点: 了解前端Vue项目的基本执行过程 重 点: 构建项目的基本登陆功能 内 容: 通过实现项目的基本登录功能,来了解前端Vue项目的基本执行过程,并完成基…

前端面试题17(js快速检索方法详解)

在前端JavaScript中,快速检索数据通常涉及到数组或对象的搜索。这里我会介绍几种常见的快速检索方法,并提供相应的代码示例。 1. 数组的find和findIndex方法 find: 返回数组中满足条件的第一个元素的值。findIndex: 返回数组中满足条件的第一个元素的索…

基于LSTM的股票价格预测

摘要 本课设旨在利用LSTM(长短期记忆)网络实现股票价格预测,通过收集、预处理股票数据集,并构建预测模型进行训练与优化。实验结果显示,经过优化调整模型参数,模型在测试集上取得了较为理想的预测效果。尽…

《征服数据结构》SparseArray

摘要: 1,SparseArray的介绍 2,SparseArray的代码实现 1,SparseArray的介绍 前面我们讲过《ArrayMap》,用它来实现哈希表,其中存放key和value的数组长度是存放散列表数组长度的二倍。 在哈希表中如果key值是…

SwiftData 模型对象的多个实例在 SwiftUI 中不能及时同步的解决

概览 我们已经知道,用 CoreData 在背后默默支持的 SwiftUI 视图在使用 @FetchRequest 来查询托管对象集合时,若查询结果中的托管对象在别处被改变将不会在 FetchedResults 中得到及时的刷新。 那么这一“囧境”在 SwiftData 里是否也会“卷土重来”呢?空说无益,就让我们在…

【项目设计】负载均衡式——Online Judge

负载均衡式——Online Judge😎 前言🙌Online Judge 项目一、项目介绍二、项目技术栈三、项目使用环境四、项目宏观框架五、项目后端服务实现过程1、comm模块设计1.1 Log.hpp实现1.2 Util.hpp实现 2、compiler_server 模块设计2.1compile.hpp文件代码编写…

vb.netcad二开自学笔记2:认识vs编辑器

认识一下宇宙第一编辑器的界面图标含义还是很重要的,否则都不知道面对的是什么还怎么继续? 一、VS编辑器中常见的图标的含义 变量 长方体:变量 局部变量 两个矩形块:枚举 预定义的枚举 紫色立方体:方法 橙色树状结构…

通过AIS实现船舶追踪与照射

前些天突然接到个紧急的项目:某处需要实现对夜航船只进行追踪并用激光灯照射以保障夜航安全。这个项目紧急到什么程度呢?!现场激光灯都安装好了,还有三个星期就要验收了,但上家没搞定就甩给我们了:( 从技术上看&#…

Java -- 实现MD5加密/加盐

目录 1. 加密的引出2. MD5介绍3. 解决MD5不可解密方法4. 实现加密解密4.1 加密4.2 验证密码 1. 加密的引出 在MySQL数据库中,一般都需要把密码、身份证、电话号码等信息进行加密,以确保数据的安全性。如果使用明文来存储,当数据库被入侵的时…

力扣考研经典题 反转链表

核心思想 头插法: 不断的将cur指针所指向的节点放到头节点之前,然后头节点指向cur节点,因为最后返回的是head.next 。 解题思路 1.如果头节点是空的,或者是只有一个节点,只需要返回head节点即可。 if (head null …

Vatee万腾平台:创新科技,驱动未来

在科技日新月异的今天,每一个创新的火花都可能成为推动社会进步的重要力量。Vatee万腾平台,作为科技创新领域的佼佼者,正以其卓越的技术实力、前瞻性的战略眼光和不懈的探索精神,驱动着未来的车轮滚滚向前。 Vatee万腾平台深知&am…