1、STARTUPE3 引脚描述
描述 STARTUPE3 相关管脚。三态控件默认1 为禁用输出,0为是能输出,KEYCLEARB 默认为 1,其他输入默认为 0。
| 管脚 | 类型 | 描述 |
| CFGCLK | Output | Configuration main clock output 到 FPGA logic。CFGCLK 反映 CCLK 引脚上的信号,输出一个 clock 信号,其中频率由 Configuration Rate 的 bitstream 选项定义。输出仅在配置期间处于活动状态,并且在启用了 Persist 的主模式下处于活动状态 |
| CFGMCLK | Output | PROGRAM_B pulse、JPROGRAM、IPROG 或 FALLBACK REQuest 到 FPGA logic。PREQ 是 FPGA logic的 output 。此引脚是 PROGRAM_B 状态机对重置设备的请求。这允许拦截和门控 PROGRAM_B 请求的断言,直到 design 处于可以完成 reset 的状态。例如,您可能希望推迟设备重新配置,以允许清除不可重置的数据元素。仅当设置了 PROG_USR 属性时,才会启用此 pin。PREQ 可以保持打开/浮动状态,以确保安全操作 |
| DI(3:0) | Output | 外部 D[03:00] 配置引脚输入,可从 STARTUPE3 路由到 FPGA 逻辑 |
| DO(3:0) | Input | FPGA logic 信号,可路由到 STARTUPE3 以连接到外部 D[03:00] 配置引脚。 |
| DTS(3:0) | Input | 外部 D[03:00] 输出引脚的三态控制 |
| EOS | Output | 高电平有效信号,表示启动结束。EOS 是 FPGA logic的 output 。此 output 将 configuration logic EOS 标志回显到 FPGA logic中。EOS 可用作重置信号 |
| FCSBO | Input | FPGA logic 信号到外部 FCS_B 配置引脚。FCSBO 允许用户控制 FCS_B pin 以进行 Flash 访问。 |
| FCSBTS | Input | 外部 FCS_B 输出引脚的三态控制 |
| GSR | Input | 不推荐 – 应将 Low 关联以禁用。GSR (Global Set/Reset) 引脚是来自 FPGA logic 的高效高电平输入,用于置位异步 set/reset,可用于重新初始化 CLB flip-flops。GSR 信号跨越整个器件,并以异步方式释放给用户 clock。由于整个器件的异步 release 和 skew , flip-flops 很可能不会在同一 clock cycle中被释放,并且可能会出现 metastable 事件。使用 GSR 的 Applications 应该在 GSR 之前停止所有 clocks 和/或在 GSR 之后重新配置 device 。在启动前的器件配置期间安全地执行相同的 flip-flop 初始化 (set/reset) |
| GTS | Input | 全局 3 态控制。GTS 是来自 FPGA logic的高电平有效输入。当此 input 被置位为 High 时,除 configuration bank 之外的所有用户 I/O 都将进入 High-Z 状态。GTS 在配置期间自动置位,无需用户置位。对于大多数应用程序,此端口应连接为低电平 |
| KEYCLEARB | Input | 从电池供电的 RAM (BBRAM) 中清除 AES 解密器密钥输入。KEYCLEARB 是来自 FPGA logic的 input。当此引脚保持为低电平时,会从电池供电的 RAM 中擦除解密密钥的内容。KEYCLEARB 可由监视器触发,以发现可疑的片上活动,这可能表明系统受到攻击 |
| PACK | Input | PROGRAM_B pin 或 PROGRAM 指令 ACKnowledge。PACK 是来自 FPGA logic的 input。此 pin 确认 external PROGRAM_B 信号或内部指令的置位,并允许 PROGRAM_B state machine 的其余部分继续重置 FPGA。仅当设置了 PROG_USR 属性时,才会启用此 pin。PACK 可以绑在低处以确保安全操作 |
| PREQ | Output | PROGRAM_B pulse、JPROGRAM、IPROG 或 FALLBACK REQuest 到 FPGA logic。PREQ 是 FPGA logic的 output 。此引脚是 PROGRAM_B 状态机对重置设备的请求。这允许拦截和门控 PROGRAM_B 请求的断言,直到 design 处于可以完成 reset 的状态。例如,您可能希望推迟设备重新配置,以允许清除不可重置的数据元素。仅当设置了 PROG_USR 属性时,才会启用此 pin。PREQ 可以保持打开/浮动状态,以确保安全操作 |
| USRCCLKO | Input | 用户 CCLK 输入。USRCCLKO 是来自 FPGA logic的 input 。USERCCLKO 将 FPGA 生成的自定义 clock frequency 驱动到外部 FPGA CCLK pin上。这对于外部 flash 设备的配置后访问非常有用。从内部 USRCCLKO 到 CCLK 引脚的延迟在数据表中定义为 TUSRCCLKO。Startup 结束后 USRCCLKO 上的前三个 clock cycles 用于切换 clock source,不会在外部 CCLK pin上输出。但是,如果使用外部主 CCLK 引脚 EMCCLK 进行配置,则它将继续在 CCLK 上看到,直到 USRCCLKO 的三个 clock cycles 允许过渡到新的用户 clock |
| USRCCLKTS | Input | 用户 CCLK 3 态使能输入至 CCLK 引脚。USRCCLKTS 是来自 FPGA logic的 input 。当 USRCCLKTS 为高电平时,外部 FPGA CCLK 引脚进入高 Z 状态。通常,USERCLKTS 应连接为低电平,以防止 CCLK 引脚进入高 Z 状态 |
| USRDONEO | Input | DONE 引脚输出信号。USRDONEO 是来自 FPGA logic的 input 。该引脚直接驱动外部 FPGA DONE 引脚 |
| USRDONETS | Input | DONE 3 态使能输出到 DONE 引脚。USRDONETS 是来自 FPGA logic的 input 。当此 input 为 High 时,DONE 将进入高 Z 状态。通常,此 pin 应系在 Low 上。将 USRDONETS 高电平绑定会抑制 DONE 的断言 |
原文参考xilinx官方手册UG570第116页
2、FPGA逻辑端控制
STARTUPE3 组件的一个关键特性是将用户设计连接到一些专用的 configuration pins。这些 pins 可用于作为用户设计的一部分访问 configuration flash。STARTUPE3 表示与外部引脚的连接,因此 STARTUPE3 的输入是与输出引脚或双向引脚的连接,而 STARTUPE3 的输出是返回用户设计的双向引脚输入。

特别需要注意DO、DI管脚在输入输出方向DTS信号控制使能,逻辑端sck、cs、mosi信号为输出类型,相应使能控制信号应该置‘0’;对于miso为输入信号,控制信号DTS相应为应该置为‘1’。下面是我使用xcku035系列fpga芯片验证spi_x1使用原语端口例化部分可以参考:
wire [1 :0] w_operation_type ;
wire [31:0] w_operation_addr ;
wire [8 :0] w_operation_num ;
wire w_operation_valid ;
wire w_operation_ready ;
wire [7 :0] w_write_data ;
wire w_write_sop ;
wire w_write_eop ;
wire w_write_valid ;
wire [7 :0] w_read_data ;
wire w_read_sop ;
wire w_read_eop ;
wire w_read_valid ;
wire o_spi_clk ;
wire o_spi_cs ;
wire o_spi_mosi ;
wire i_spi_miso ;
flash_drive flash_drive_u0(
.i_clk (i_clk ),
.i_rst (i_rst ),
.i_operation_type (w_operation_type ), //操作类型
.i_operation_addr (w_operation_addr ), //操作地址
.i_operation_num (w_operation_num ), //限制用户每次最多写256字节
.i_operation_valid (w_operation_valid ), //操作握手有效
.o_operation_ready (w_operation_ready ), //操作握手准备
.i_write_data (w_write_data ), //写数据
.i_write_sop (w_write_sop ), //写数据-开始信号
.i_write_eop (w_write_eop ), //写数据-结束信号
.i_write_valid (w_write_valid ), //写数据-有效信号
.o_read_data (w_read_data ), //读数据
.o_read_sop (w_read_sop ), //读数据-开始信号
.o_read_eop (w_read_eop ), //读数据-结束信号
.o_read_valid (w_read_valid ), //读数据-有效信号
.o_spi_clk (o_spi_clk ), //spi的clk
.o_spi_cs (o_spi_cs ), //spi的片选
.o_spi_mosi (o_spi_mosi ), //spi的主机输出
.i_spi_miso (i_spi_miso ) //spi的从机输出
);
STARTUPE3 #(
.PROG_USR ("FALSE" ),
.SIM_CCLK_FREQ (0.0 ) // Set the Configuration Clock Frequency (ns) for simulation
)
STARTUPE3_inst (
.CFGCLK ( ), // 1-bit output: Configuration main clock output
.CFGMCLK ( ), // 1-bit output: Configuration internal oscillator clock output
.DI ({1'b0,1'b0,i_spi_miso,1'b0} ), // 4-bit output: Allow receiving on the D input pin
.EOS ( ), // 1-bit output: Active-High output signal indicating the End Of Startup
.PREQ ( ), // 1-bit output: PROGRAM request to fabric output
.DO ({1'b1,1'b1,1'b0,o_spi_mosi} ), // 4-bit input: Allows control of the D pin output
.DTS (4'b0010 ), // 4-bit input: Allows tristate of the D pin
.FCSBO (o_spi_cs ), // 1-bit input: Controls the FCS_B pin for flash access
.FCSBTS (0 ), // 1-bit input: Tristate the FCS_B pin
.GSR (0 ), // 1-bit input: Global Set/Reset input (GSR cannot be used for the port)
.GTS (0 ), // 1-bit input: Global 3-state input (GTS cannot be used for the port name)
.KEYCLEARB (0 ), // 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM)
.PACK (0 ), // 1-bit input: PROGRAM acknowledge input
.USRCCLKO (o_spi_clk ), // 1-bit input: User CCLK input
.USRCCLKTS (0 ), // 1-bit input: User CCLK 3-state enable input
.USRDONEO (1 ), // 1-bit input: User DONE pin output control
.USRDONETS (1 ) // 1-bit input: User DONE 3-state enable output
);

197

被折叠的 条评论
为什么被折叠?



