文章
  • 文章
搜索
首页 >> 技术文档 >>官方资料 >>FPAG文档 >> AG10K/16K FPGA 设计参考(官方版)
详细内容

AG10K/16K FPGA 设计参考(官方版)

AG10K/16K FPGA 设计参考


1. PLL

AG10K FPGA 工程如果在编译时出现“Error: Please use a live signal to reset PLL”错误信息。设计中需要在系统启动后做个 PLL 复位,可以参考下面 Verilog 代码,这里需要 PLL IP 的 areset或 pfdena 引出,用 PLL 的输入时钟触发计数器输出来控制复位信号。

image.png

注意:在 DateCode 2234 日期之后的 AG10K 芯片可以不加入复位控制,可以使用 2023 年新版本 Supra 设计,提示信息只是 warning,可以忽略。原设计有复位的话也不影响运行。


2. Flash 管脚

如果在设计中对配置 FLASH 进行读写,则要在 Quartus II 中把 4 个 SPI 配置管脚设置为“Use as regular I/O”。


3. VccINT

如果 FPGA 的资源利用率较高,或者设计时序要求高,建议把 1.2V 的 VccINT 电压,升高到正常电压范围的 1.25V,会有效提高 FPGA 性能和稳定性。


4. FLASH 编程文件

离线单独烧写配置用 SPI FLASH,使用 XXX_master.bin,可通过第三方 FLASH 编程器烧写。如使用其它兼容 Altera POF 文件的烧写工具,需注意 Altera 文件 MSB-LSB 为反向,需倒置后才可正确烧写。


5. AS 口在线烧写 FLASH

如果使用 USB-Blaster 通过 AS 接口在线烧写配置用 SPI FLASH,由于 AG10K 的 DCLK、nCSO、ASDO 管脚并未输出三态,因此需分别串接 1KΩ 电阻,使得 USB-Blaster 驱动能力高过这些管脚的输出能力,且 DCLK 时钟降低频率,即可实现正常烧写和配置。建议 FPGA 采用 JTAG 接口,则可直接通过 Supra 软件烧写 XXX_master.prg 文件到 SPI FLASH中,无需通过 AS 接口。


注意:在 DateCode 2234 日期之后的 AG10K 芯片没有以上问题,可以不串接电阻,和 Altera兼容型号电路一致。


6. CLK 输入管脚

CLK 专用输入管脚,没有内部上拉电阻,所以在悬空没有输入状态时,会得到 0 的电平数据。这和 Altera EP4C 的高电平结果不同。如果正常输入时钟或信号驱动,则没有影响。


7. Latch 锁存器

支持 latch, 但建议设计中不用 latch, 异步电路时序不容易分析操作,建议不使用。


8.Conf_done

所有 fpga 逻辑功能必须发生在 fpga 配置完成之后(conf_done 为高)。


9.除法器

如设计中使用了除法器,需对除法器的路径设置 multicycle。除法器的 latency 即为 multicycle

的时钟数。如无法满足 timing,建议增加除法器的 latency。


10. 烧写文件压缩

AG10K/16K 支持 AS 模式的烧写文件压缩,以减少存储空间。但不同设计压缩出的文件大小不一,如需统一文件存储空间,可选非压缩方式。AG10K 不支持 PS 模式的烧写文件压缩。原 QuartusII 设计里如果选了压缩,产生的编程文件则无法正常运行,请取消设置;或者在 AGM 项目中的 DesignName.asf 中加入:set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION OFFAG16K 支持 PS 压缩。


11. 3.3V IO

软件中要按实际 IO 电压正确设置。Quartus II 中对 IO standard 的默认为 2.5V,如果实际采用3.3V,需要修改 IO 默认值为 3.3V。AG10K/16K SDE176,由于内部 SDRAM 为 3.3V,VCCIO 必须使用 3.3V,软件中也要设置正确。


12. 电源上电顺序

3.3V VCCIO 电源应不晚于 VCCINT 1.2V 和 2.5V 上电,这样保证 FPGA 在启动配置前,使得配置 FLASH(3.3V)启动完成,从而避免上电配置失败。


13. PLL 时钟输出

为了避免时钟域 skew 或 jitter,如果需要同频率同相位的时钟驱动不同功能,尽可能合并成同一个时钟进行处理,不要采用多个同样的输出时钟这种方式,避免跨时钟域的情况出现。不同频的时钟,尽可能采用 RAM 或者 FIFO 交互,如果寄存器直接交互,尽可能通过设计保证时钟采样在数据中间位置。


14. 逻辑资源优化

当逻辑资源比较紧张时,推荐将同步复位改为异步复位,可以节省一定的逻辑资源;


15. MSEL 配置模式选择

MSEL[0..2]在 AS 模式连接为 010 或 101,PS 模式为 000。管脚要直接连接 VCC 或 GND,不用

串接电阻。


16. PHY

PHY 芯片时钟,一般在 Tx 方向,数据与 clk 会使用边沿对齐,Rx 方向是中央对齐的方式。

a) Tx:

Edge Aligned,除了在数据端使用 DDIO_OUT,在 clk 上也要用上 DDIO_OUT,以保证时钟和

数据的对齐。

image.png

Center Aligned,不用 DDIO,把时钟反向,如:assign p0gtxc = !pll_clk;

然后 asf 文件中加入延迟:

set_instance_assignment -name OUT_DELAY -to p0tx* 1'b1 -extension

set_instance_assignment -name OUT_DELAY -to p1tx* 1'b1 -extension

b) Rx:

在 asf 文件中加入:

set_instance_assignment -name IN_DATA_DELAY -to p*rxd* 3'b110 -extension

p*rxd*应包括所有的 rx 数据输入(每个 PHY 有 4 个 data 和 1 个 ctrl)

加入以上设置,在 sdc 文件中可以省略输入输出延迟的约束。

这只针对 rxc 使用 Global Clock 时的情况。其它需具体根据时序分析延迟。

DDIO 的应用除 data 外,dv 信号有可能不会被 Supra 识别,这时,需在 ve 文件中对 dv 信号

加入 DDIO_IN 参数,如:

P0_rxdv pin_xx DDIO_IN


17. SDRAM

——方法(1)

a) 输出端:

sdc 文件中加入以下时序约束(以下红色标示的需改):

set sdr_src_pin {mclk_inst|altpll_component|auto_generated|pll1|clk[2]}

set sdr_clk sdrclk_output

set sdr_ctrl_data {sdramcs sdramba* sdramcas sdramras sdramwe sdramadd* sdramdatam*}

create_generated_clock -name $sdr_clk -source [get_pins $sdr_src_pin] [get_ports $sdr_clk]

set_output_delay -clock $sdr_clk -max 1.5 [get_ports $sdr_ctrl_data]

set_output_delay -clock $sdr_clk -min -1 [get_ports $sdr_ctrl_data]

sdr_clk 是输出到 SDRAM 的时钟,不再需要相位移动;

mclk_inst|altpll_component|auto_generated|pll1|clk[2] 替换为实际的 sdr_clk 时钟管脚名称;

sdram* 替换为实际的 SDRAM 数据和控制端口。

对于 16 位 SDRAM,每一组 SDRAM 的时钟和数据控制端口都要加入以上约束。

b) 输入端:

数据输入端需加入一级流水线 Pipeline。在数据端口使用 FAST_INPUT_REGISTER 设置,来优

化 IO 到寄存器的时序;

Sdc 时序约束可以不加。

——方法(2)

同时在 SDRAM 的端口使用 IO register,Sdc 时序约束可以不加。

输入端:在数据端口使用 FAST_INPUT_REGISTER 设置;

输出端:DATA 端口使用 FAST_OUTPUT_REGISTER 和 FAST_OUTPUT_ENABLE_REGISTER 设置,

其它控制管脚使用 FAST_OUTPUT_REGISTER 设置。

输出给 SDRAM 的时钟相对于 Controller 的时钟加一个反向,即相移 180 度。


关于我们

品牌中心

产品中心

新闻动态

咨询热线:13661545024(全国技术销售热线)

上海天晨芯科技有限公司

销售邮箱:sales@chipmorn.com

技术邮箱:jun.yao@chipmorn.com

公司地址:上海浦东新区东方路1365号5号楼

seo seo