Xilinx 7系列FPGA配置(ug470)

Xilinx 7系列FPGA配置(ug470)

    • 配置模式
      • 串行配置模式
        • 接口
        • 从-连接方式
        • 主-连接方式
        • 串行菊花链(非同时配置)
        • 串行配置(同时配置)
        • 时序
      • 主SPI配置模式
        • SPIx1/x2 连接图
        • SPIx1模式时序
        • SPIx4 连接图
        • SPI操作指令
        • 操作flash空间大于128Mb
        • SPI配置时序
        • SPI最大速率计算
        • 上电顺序要求
      • 主BPI配置模式
        • 接口
        • 异步读取模式
          • 连接图
          • 时序
        • 同步读取模式
          • 连接图
        • 最大配置速率计算
        • 上电顺序要求
      • SelectMAP 配置模式
        • 简介
        • 接口
        • Data Ordering
        • 单器件配置模式
          • 连接示例
          • 数据加载
            • 连续配置时序
            • 非连续配置时序
          • 终止操作
            • 时序
            • 状态字定义
            • 状态字数据对齐
        • 多器件SelectMAP独立配置
        • 多器件SelectMAP同时配置
        • 并行菊花链配置
      • JTAG配置模式
    • 配置引脚
      • CVGBVS
      • PROGRAM_B
      • INIT_B
      • PUDC_B
      • VCCBATT
      • RS0, RS1
      • RDWR_B
      • FCS_B
      • FOE_B
      • FWE_B
    • Configuration Details
      • 配置文件格式
      • 总线位宽自动检测
      • 同步字
      • 位交换和总线字序
      • 延迟配置
        • 延迟相关信号
      • 配置顺序
        • Setup
          • Device Power-Up (Step 1)
          • Clear Configuration Memory (Step 2, Initialization)
          • Sample Mode Pins (Step 3)
        • Bitstream Loading
          • Synchronization (Step 4)
          • Check Device ID (Step 5)
          • Load Configuration Data Frames (Step 6)
          • Cyclic Redundancy Check (Step 7)
        • Startup
        • 配置过程I/O电平变化(EOS)
        • STARTUPE2原语
      • Bitstream Security
      • Bitstream Composition
    • 配置寄存器
    • 重配置和多镜像
      • Fallback MultiBoot
        • 先加载golden再触发MultiBoot
        • 直接加载MultiBoot
      • IPROG
        • IPROG Using ICAPE2
        • IPROG Embedded in the Bitstream
        • Status Register for Fallback and IPROG Reconfiguration
      • WBSTAR Register
      • Watchdog Timer
        • Configuration Monitor Mode
        • User Monitor Mode
      • RS Pins
    • JTAG高级用法
    • 参考文献

配置模式

如果 M[2:0] 为 ”101“,则该FPGA 只支持 JTAG 进行配置。处于其余配置模式下时,依旧可以使用 JTAG 模式进行调试,并且优先级最高。

串行配置模式

接口

在这里插入图片描述

从-连接方式

主-连接方式
  • 除了CCLK 连接不同,其他都和从串行模式一样
串行菊花链(非同时配置)
  • 上升沿采样DIN数据,下降沿DOUT输出数据,形成上下流关系;
  • SPI 在该连接方式下不支持重配置功能;
  • 第一个器件最后完成配置;当链中最远端器件完成配置,则将DONE变为高阻态,这样下一个器件检测到DONE为高则开始配置;
  • 7系列必须放在第一个;
  • DOUT传输的总数据量有限制,所以要根据程序大小计算好可以连接的器件个数

在这里插入图片描述

串行配置(同时配置)
  • 所有器件要一样(IDCODE一样),配置程序也一样

在这里插入图片描述

时序

在这里插入图片描述

主SPI配置模式

SPIx1/x2 连接图
  • INIT_B 需要外部上拉电阻;
  • 菊花链模式不支持SPIx2和x4,DOUT连接下个器件的DIN形成菊花链;
  • FPGA VCCO_0 要适配 FLASH器件的VCC;
  • 默认SPI器件在CCLK下降沿锁存数据,FPGA在上升沿采样数据(可以通过配置SPI_FALL_EDGE属性更改为下降沿采样);
  • 可通过ConfigRate属性调节CCLK频率;可通过ExtMasterCclk_en属性使能外部输入时钟EMCCLK作为CCLK源使用;
  • VCCBATT用于AES密钥存储,需要时连接

在这里插入图片描述

SPIx1模式时序
  • CCLK初始始终为3MHz,配置ConfigRate只有在读写数据时生效,写地址和指令时不生效;
  • SPI FLASH在配置后不使用,建议将FCS_B拉高;
  • PUDC_B为低,在写完读指令和地址后,MOSI需要拉高或者为高阻态

在这里插入图片描述

SPIx4 连接图

在这里插入图片描述

SPI操作指令
  • 通过spi_buswidth属性改变读写位宽

在这里插入图片描述

操作flash空间大于128Mb
  • 通过使能 spi_32bit_addr 属性支持32bit地址模式
SPI配置时序
  • 默认SPI器件在CCLK下降沿锁存数据,FPGA在上升沿采样数据;
  • 可以通过配置SPI_FALL_EDGE属性更改为下降沿采样,但是一开始还是上升沿采样,只有到读取bit流中的更改为下降沿这个配置信息之后才会生效,这个在使能外部时钟源和更改速率之前生效

在这里插入图片描述

SPI最大速率计算

在这里插入图片描述

在这里插入图片描述

上电顺序要求

SPI flash必须在FPGA 拉低FCS_B和发送读指令之前具备接受指令状态

主BPI配置模式

  • 某些引脚位于 bank15,Artix-7 中 7A50T 以及更小器件和 Spartan-7系列不支持 BPI 配置;
  • BPI模式支持异步和同步读取两种方式,默认异步;
  • 异步读取支持x8和x16两种位宽,均为自动识别
接口

在这里插入图片描述

异步读取模式
连接图
  • BPI模式:M[2:0]= 101 ;
  • CCLK必须作为输出悬空;
  • RS[1:0]用于多镜像配置(MultiBoot)

在这里插入图片描述

时序
  1. 开始配置:上电或者低脉冲PROGRAM_B信号;
  2. 上电配置:PROGRAM_B低电平时拉低INIT_B;
  3. 初始化完成:INIT_B变高,INIT_B上升沿采样M[2:0],识别配置模式;
  4. 识别为BPI模式:FWE_B拉高,FOE_B拉低,FCS_B拉低;
  5. 主模式时INIT_B上升沿一段延时后输出CCLK;
  6. FPGA输出初始地址并维持10个CCLK;
  7. FPGA在CCLK上升沿读取数据;
  8. CRC错误,INIT_B输出低,DONE保持低电平;
  9. 加载完成,DONE拉高;
  10. CCLK变为高阻态;
  11. 在GTS_cycle后多功能I/O引脚变为用户模式,默认为DONE变为高后一个周期

在这里插入图片描述

同步读取模式
连接图
  1. 同步读取模式是最快的配置模式;
  2. 一开始使用默认CCLK速率和异步读取模式,直到读取bitstream的header才转换为同步读模式;
  3. 同步模式需要通过设置BPI_sync_mode属性设置,有两种属性值:Type1(用于G18F信号flash);Type2(用于P30/P33信号flash);
  4. 同步读模式,FPGA CCLK输出连接BPI Flash,ADV_B连接FLASH ADV引脚;
  5. FPGA配置完成后 BPI flash保持同步读模式;
  6. 同步读模式只支持x16;
  7. bit顺序和SelectMap一样

在这里插入图片描述

最大配置速率计算

在这里插入图片描述

上电顺序要求
  • 在FPGA驱动FCS_B低电平并输出第一个地址之前,BPI闪存必须准备好进行异步读取,以确保BPI闪存可以输出存储的比特流。

SelectMAP 配置模式

简介
  • 总线宽度 8、16、32bits,可以自动识别总线宽度;

  • 支持配置和读取操作;

  • 读操作只有从 SelectMAP模式支持;

  • CCLK主模式下为输出;从模式下为输入;

  • 模式:单器件从模式、多器件菊花链模式、多相同器件模式

接口

Data Ordering

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=MD_IMG%2FXilinx%207%E7%B3%BB%E5%88%97FPGA%E9%85%8D%E7%BD%AE.assets%2Fimage8.png&pos_id=img-ZR95DUWS-1709733617032)
在这里插入图片描述

单器件配置模式
连接示例

在这里插入图片描述

数据加载

支持连续和非连续数据加载,数据加载由 CSI_B、RDWR_B、CCLK信号控制

  • CSI_B

    • SelectMAP 接口使能,低有效;

    • 当不需要SelectMAP和读回操作时,CSI_B可以接地

  • RDWR_B

    • 输入输出使能,低电平输入(写FPGA),高电平输出(读FPGA);
    • CSI_B使能时,RDWR_B保持不变,否则会中断配置和回读操作
  • CCLK

    • 所有数据操作同步于CCLK;
    • 配置FPGA:FPGA在时钟上升沿采样;
    • 回读FPGA:FPGA在时钟上升沿更新数据
连续配置时序

非连续配置时序

两种非连续配置方式:

  • 通过控制CSI_B信号;
  • 通过控制CCLK信号


在这里插入图片描述

终止操作
  • 分为配置终止和回读终止操作;
  • 当CSI_B有效时改变RDWR_B触发终止操作;
  • 配置终止会持续4个CCLK周期,同时数据线D0-7会返回状态字;回读终止不返回状字;
  • 终止操作完成后会恢复配置/回读操作;或者可以通过产生PROGRAM_B低脉冲复位整个器件
时序

在这里插入图片描述

状态字定义

状态字数据对齐

多器件SelectMAP独立配置
  • 通过CS单独控制每个器件

多器件SelectMAP同时配置

并行菊花链配置
  • CS_B为菊花链;
  • 第一个器件可以为Master/Slave SelecrMAP、BPI,其他必须都为Slave SelecrMAP

在这里插入图片描述

JTAG配置模式

  • 无论M[2:0]配置为何值,都支持JTAG在线配置

配置引脚

在这里插入图片描述

在这里插入图片描述

CVGBVS

  • 输入引脚;
  • CVGBVS决定bank0 I/O支持的电压值,以及配置区间bank14、bank15的I/O所支持的电压值;
  • 若I/O工作在1.8V或者更低电压下,CVGBVS接GND;
  • 若I/O工作在2.5V/3.3V下,CVGBVS接VCCO_0(3.3V/2.5V);
  • 7系列有两种I/O bank类型:high-range (HR I/O) banks 支持3.3,2.5V电压标准;a few lower voltage I/O standards, and high-performance (HP I/O) banks 支持 1.8V 或者更低的电压标准;

在这里插入图片描述

PROGRAM_B

  • 输入引脚,下降沿有效,用于复位整个器件;
  • 上升沿开始启动配置,但上电时把 PROGRAM_B 保持低电平不会使 FPGA配置保持复位状态,延迟配置时间需要使用 INIT_B 信号配合完成
  • 引脚外部需要通过4.7kΩ 以上电阻上拉至VCCO_0

INIT_B

  • FPGA 初始化引脚或配置错误信号,低电平有效。当 FPGA 处于配置复位状态或当FPGA 正在初始化(清除)其配置存储器(PROGRAM_B信号为低电平)时或当 FPGA 检测到配置错误时,FPGA 会将该引脚驱动为低电平;
  • 在上电期间,可以通过讲该引脚拉低,来延迟上电配置程序的时间 ;
  • 当完成初始化后,该引脚被释放,外部上拉电阻讲该引脚拉高,当检测到该信号上升沿之后,FPGA会读取M[2:0]引脚状态,从而确定后续采用哪种配置方式进行配置 ;
  • 引脚外部需要通过4.7KΩ以上的电阻上拉至VCCO_0 ;
  • M[2:0]被采样之后:INIT_B作为输出,0表示CRC或IDCODE错误(这时DONE为低电平),0或表示回读CRC错误(这时DONE为高电平,且回读CRC使能);1表示没有CRC错误,初始化完成

PUDC_B

  • 输入引脚(不可悬空),在配置期间I/O引脚内部上拉电阻使能;
  • 低电平,配置期间所有未赋值引脚为高电平;
  • 高电平,配置期间所有未赋值引脚为高阻态

VCCBATT

  • FPGA内部易失性存储器的电池备用电源,用于存储AES解密器的密钥,如果不需要使用AES易失性密钥存储区域中的解密器密钥,那么将该引脚接地就行,该引脚不是I/O,不受VCCO_0的影响

RS0, RS1

  • 输出引脚,RS[1:0]用多镜像配置(MultiBoot)

RDWR_B

  • 输入引脚;
  • 高电平:FPGA输出数据到SelectMap数据线上;
  • 低电平:外部控制器通过SelectMap数据线写数据到FPGA

FCS_B

  • 输出引脚,flash片选信号,低有效

FOE_B

  • 输出引脚,flash输出使能,低有效

FWE_B

  • 输出引脚,flash写使能,低有效

Configuration Details

配置文件格式

在这里插入图片描述

总线位宽自动检测

  • Serial、JTAG、SPI模式不支持总线位宽自动检测功能;
  • 只检测D[7:0]的值,检测到0xBB,若下一次检测到0x11,则为x8;若下一次检测到0x22,则为x16;若下一次检测到0x44,则为x32;然后立即切换总线位宽,开始检测同步字
    在这里插入图片描述

同步字

  • 识别到同步字前没有其他包数据

在这里插入图片描述

位交换和总线字序

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

延迟配置

  • 通过 INIT_B保持低电平来延迟配置。当INIT_B拉高后(完成初始化阶段),再次拉低不会延迟配置。
延迟相关信号

在这里插入图片描述

配置顺序

在这里插入图片描述

Setup
Device Power-Up (Step 1)
  • 电源引脚

在这里插入图片描述

  • 上电时序


在这里插入图片描述

Clear Configuration Memory (Step 2, Initialization)
  • 以下情况都会触发“清除配置存储”:重新上电、PROGRAM_B低脉冲、JTAG JPROGRAM指令、IPROG指令、fallback重配置;
  • BRAM和寄存器都会通过GSR拉高初始化;
  • 这段期间,除了少数配置输出引脚,其他I/O通过GTS处于高阻态,如果PUDC_B为低,则为内部上拉
Sample Mode Pins (Step 3)
  • INIT_B拉高后,器件采集M[2:0]模式引脚值,驱动CCLK(master模式下),然后在CCLK上升沿采集配置数据引脚值
Bitstream Loading
Synchronization (Step 4)
  • 对于BPI模式、SelectMAP模式,同步前需要先自动识别位宽;
  • 任何同步字前的数据都会被忽略,除了位宽检测序列;
  • 同步阶段对于大多数用户是透明的,因为工具生成的bit包含位宽检测序列及同步字

同步阶段相关信号

Check Device ID (Step 5)
  • 同步之后进行器件ID检验,如果ID不匹配则回退进行重配置

  • 7系列 jtag ID Code寄存器格式

Load Configuration Data Frames (Step 6)
  • 同步字加载及器件ID检查完成后,开始加载配置数据帧

  • Configuration Packets :Type1、Type2两种,寄存器地址只用5bit

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

Cyclic Redundancy Check (Step 7)
  • FPGA 计算CRC跟bit里的校验值比较;
  • 同步丢失后,后续的指令都被忽略,最配置失败—DONE低,INIT_B高
Startup
  • DONE置位后要保留足够时间保证能到 phase7,保守时间为64个时钟周期

在这里插入图片描述

  • 防止DONE、GTS、GWE在MMCMs锁相和DCI匹配前置位

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

配置过程I/O电平变化(EOS)
  • 在End Of Startup后一个CFGCLK发生0-1-0的电平转变过程;
  • 避免产生影响:VCCO14、15接2.5/3.3V;或者外部引脚上拉;还可以逻辑设计忽略EOS 后第一个CFGCLK上升沿之后至少200ns不采纳数据

STARTUPE2原语

Bitstream Security

Bitstream Composition

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

配置寄存器

在这里插入图片描述

重配置和多镜像

Fallback MultiBoot

  • 回退功能使能:ConfigFallback(通过xdc约束或者bitstream设置);
  • 回退重配置时将忽略IPROG,看门狗计时器关闭;
  • 重配置失败,配置终止,INIT_B和DONE保持低电平
先加载golden再触发MultiBoot

在这里插入图片描述

直接加载MultiBoot
  • 对于SPI模式,回退默认使用x1进行golden镜像加载;
  • 对于BPI模式,回退默认使用异步读模式进行镜像加载,所以当配置为同步读模式时要注意CCLK,同时要满足异步和同步读模式;
  • BPI模式,硬件设计RS引脚要根据upper address进行上拉或者下拉

在这里插入图片描述

IPROG

  • IPROG(Internal PROGRAM)指令和PROGRAM_B引脚给低脉冲作用类似,区别在于IPROG不复位WBSTAR、TIMER、BSPI和BOOTSTS寄存器值;
  • IPROG指令触发初始化,同时INIT和DONE拉低;
  • 两种发起指令方式:逻辑控制ICAPE2;生成bit时在golden bit前加入WBSTAR和IPROG指令; 4.当触发回退重新加载时IPROG指令将被忽略
IPROG Using ICAPE2
  • 输入配置信息需要位转换;
  • 发送流程:同步字->WBSTAR->IPROG

在这里插入图片描述

IPROG Embedded in the Bitstream

在这里插入图片描述

Status Register for Fallback and IPROG Reconfiguration
  • BOOTSTS用于存储配置历史;
  • Valid用于只是当前Status是否有效;
  • Status_0用于记录最新配置状态; Status_1用于记录上一次配置状态;

在这里插入图片描述

  • Status_1 表示执行了IPROG,检测到CRC错误;
  • Status_0表示回退加载成功,同时也有IPROG,只是回退重配置忽略IPROG指令,但是同样记录状态

WBSTAR Register

  • 执行IPROG指令后,FPGA从WBSTAR指示的地址开始读指令

在这里插入图片描述

Watchdog Timer

  • 两种模式:配置监控、用户逻辑监控;
  • 计数到达0,触发回退;
  • 计时器寄存器计数时钟为CFGMCLK(65MHz))256分频,一个时钟周期为4000ns,计数器位宽30bits,所以可以计时4230秒;
  • 回退重配置时,Watchdog不使能
Configuration Monitor Mode
  • TIMER寄存器:TIME_CFG_MON设为1,并设置超时计数值
User Monitor Mode
  • TIMER寄存器:TIME_USR_MON设为1,并设置超时计数值

RS Pins

  • 除SPI配置模式,RS信号均由WBSTAR寄存器控制输出;

  • 当BPI或Master SelectMap模式回退时,输出低电平;

  • 在多镜像场景用作为高位地址线;

  • 除CCLK外所有BPI引脚均为多功能I/O,配置完成后(DONE为高)均可由用户控制

在这里插入图片描述

JTAG高级用法

在这里插入图片描述

参考文献

7 Series FPGAs Configuration User Guide (UG470)

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

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

相关文章

php反序列化字符逃逸

php反序列化和序列化 PHP序列化:serialize() 序列化是将变量或对象转换成字符串的过程,用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。“序列化”是一种把对象的状态转化成字节流的机制 类似于这样的结构: O:4:&quo…

【Linux】Linux网络故障排查与解决指南

🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 检查网络连接状态: 检查路由表: 检查DNS配置: 检查网络连接状态: 检查防火墙设…

类与对象(三)--构造函数体中的赋值和初始化列表的区别

🎧1构造函数体赋值 🔎在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 ⭐️就像上述代码中的构造函数,其函数体的语句只能被称为赋予初值而不能称为初始化。因为初始化是在定义的同时赋…

解决WordPress更新插件或者更新版本报WordPress 需要访问您网页服务器的权限的问题

文章目录 前言一、原因二、解决步骤总结 前言 当对WordPress的插件或者版本进行更新时报错:要执行请求的操作,WordPress 需要访问您网页服务器的权限。 请输入您的 FTP 登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码&#xff09…

前端面试拼图-原理源码

摘要:最近,看了下慕课2周刷完n道面试题,记录下... 1. JS内存泄漏如何检测?场景有哪些? 1.1 垃圾回收 GC 垃圾回收是一种自动管理内存的机制,它负责在运行时跟踪内存的分配和使用情况,并在不再需要的对象…

Python 开发图形界面程序

用 Python 语言开发图形界面的程序,有2种选择: Tkinter 基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。 PySide2/PySide6 基于Qt 的Python库&#x…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:浮层)

设置组件的遮罩文本。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 overlay overlay(value: string | CustomBuilder, options?: { align?: Alignment; offset?: { x?: number; y?: number } })…

6. Gin集成redis

文章目录 一:连接Redis二:基本使用三:字符串四:列表五:哈希六:Set七:管道八、事务九:示例 代码地址:https://gitee.com/lymgoforIT/golang-trick/tree/master/14-go-redi…

跨境电商选品API商品采集API接入指南

选品是每个电商卖家的必经之路,产品的好坏将直接决定店铺的盈利、发展方向。选择合适的产品可以让卖家事半功倍,快速爆单。 用API实现代购系统和1688淘宝等平台的商品信息对接,可以免去很多选品工作。 item_get 获得淘宝商品详情item_get_p…

Maven入门(作用,安装配置,Idea基础maven,Maven依赖,Maven构建项目)【详解】

目录 一. Maven的作用 1.依赖管理 2.统一项目结构 3.项目构建 二.Maven安装配置 1. Maven的仓库类型 2 加载jar的顺序 3. Maven安装配置 4.安装Maven 5.配置仓库 三.idea集成maven 1.给当前project集成maven 2.给新建project集成maven 3.创建maven项目 4.pom…

闫震海:腾讯音乐空间音频技术的发展和应用 | 演讲嘉宾公布

一、3D 音频 3D 音频分论坛将于3月27日同期举办! 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验,跨越时空的限制,探索未知的世界。同时,提供更加丰富、立体的情感表达和交流方式,让人类能够更加深入地理解彼此&…

Spring——Bean的作用域

bean的作用域 Bean Scope Scope说明singleton(默认情况下)为每个Spring IoC容器将单个Bean定义的Scope扩大到单个对象实例。prototype将单个Bean定义的Scope扩大到任何数量的对象实例。session将单个Bean定义的Scope扩大到一个HTTP Session 的生命周期…

Linux之cd、pwd、mkdir 命令

cd命令,切换目录 1)当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录。 2)我们可以通过cd命令,更改当前所在的工作目录。 3)cd命令来自英文:C…

LeetCode-第67题-二进制求和

1.题目描述 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 2.样例描述 3.思路描述 将两个二进制字符串转换成整型,然后相加后的整型转为二进制字符串 4.代码展示 class Solution(object):def addBinary(self, a, b):# 将字符串…

11. C语言标准函数库

C语言制定了一组使用方式通用的函数,称为C语言标准函数库,用于实现编程常用功能,标准函数库由编译器系统提供,并按功能分类存储在不同源代码文件中,调用标准库内函数时需要首先使用 #include 连接对应的源代码文件。 【…

操作教程|使用MeterSphere对恒生UFX系统进行压力测试

恒生UFX(United Finance Exchange,统一金融交换)系统(以下简称为“UFX系统”),是一款帮助证券公司统一管理外部接入客户的系统,该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类…

【CSP试题回顾】201604-1-折点计数

CSP-201604-1-折点计数 解题代码 #include <iostream> #include <vector> #include <algorithm> using namespace std;int n, pointSum;int main() {cin >> n;vector<int>myData(n);for (int i 0; i < n; i){cin >> myData[i];}// 统…

LinkedList集合源码分析

LinkedList集合源码分析 文章目录 LinkedList集合源码分析一、字段分析二、构造函数分析三、方法分析四、总结 看到实现了Deque 就要联想到这个数据结构肯定是属于双端队列了。Queue 表示队列&#xff0c;Deque表示双端队列。 一、字段分析 LinkedList 字段很少&#xff0c;就…

Python影像分析-根据卫星图像估算土壤湿度

在这篇文章中,我将讨论用于估计土壤湿度的最流行的模型,称为梯形模型。该模型源自卫星,这些卫星以一致的比例和分辨率提供地表温度和植被指数,例如归一化植被指数 (NDVI)。” 目录 🌟简介📥下载 Sentinel-3 表面温度和 NDVI 图像📉绘制 NDVI 与 LST(梯形空间)的图�…

Python爬虫:设置随机 User-Agent

Python爬虫&#xff1a;设置随机 User-Agent 在Python中编写爬虫时&#xff0c;为了模拟真实用户的行为并防止被服务器识别为爬虫&#xff0c;通常需要设置随机的User-Agent。你可以使用fake-useragent库来实现这一功能。首先&#xff0c;你需要安装fake-useragent库&#xff…