GCLK IO只作用于输入时钟,而输出时钟使用普通IO即可。
有两个参数可以调整器件从SPI Flash中加载的速度:
1. 在TD软件中修改Device Option中的加载模式为SPIx4;
2. 在TD软件中修改Properties->Generate Bitstream->Control Option中的mclk_freq_div参数,建议加载速度(mclk_freq_div)的选择最高到24M。
EF2系列最快加载时间12ms左右,EF3系列最快38ms,具体信息可参考各系列的《Flash启动加载时间测试》 文档。
具体修改流程,也可以参考易点通视频:
https://mp.weixin.qq.com/s/UZcdYi5dwEmE-HVkH3k1_A
推荐使用两级计数器生成内部复位信号,这样可以保证复位信号的宽度符合预期。推荐写法如下:
reg [3:0] rst_init_cnt;
wire rst_init_n;
reg [15:0] rst_temp ;
reg SYS_RST_N;
always @(posedge clk)
begin
if(rst_init_cnt <4'h8)
rst_init_cnt <= rst_init_cnt + 1;
else
rst_init_cnt <= rst_init_cnt ;
end
assign rst_init_n = rst_init_cnt[3];
always@(posedge clk or negedge rst_init_n) begin
if (rst_init_n == 1'b0)
rst_temp <= 'd0;
else if(rst_temp < 16’d50000)
rst_temp <=rst_temp + 1'b1;
else
rst_temp <=16’d50000;
end
always @(posedge clk or negedge rst_init_n) begin
if (rst_init_n == 1'b0)
SYS_RST_N <=1'b0;
else if(rst_temp>32'd5&&rst_temp < 16’d30000)
SYS_RST_N <=1'b0;
else
SYS_RST_N <=1'b1;
End
这两个选项的作用是不同的:
1. 勾选bg模式,烧写外部SPI Flash时,不中断当前FPGA里正在运行的逻辑功能;不勾选bg模式,烧写外部SPI Flash前,先停止当前FPGA里正在运行的逻辑。
2. 勾选rf模式,烧写外部SPI Flash完成后,会执行一条刷新指令,使FPGA立刻加载新的位流;不勾选rf模式,烧写外部SPI Flash完成后,不会执行刷新指令。
这里要注意的是,如果原有FPGA逻辑功能里会访问SPI Flash,即设置了persist_bit=0,就不能支持勾选bg模式的操作。
TD软件的Download工具暂时只支持单颗器件的JTAG加载。多片FPGA级联的情况,可使用TD软件的Device Chain工具,生成支持级联的SVF文件并进行加载。
可以使用cea信号作为wren使用。
IO上下拉是通过电流源来模拟一个电阻,电流源的范围是35uA~250uA,典型值为100uA。上下拉电阻的阻值可以用V/I换算得到,例如VCCIO=3.3V:
– 阻值最小为3.3V/250uA=13.2K
– 阻值最大为3.3V/35uA=94.3K
– 阻值典型值为3.3V/100uA=33K
可以支持。
在Device Chain工具中,勾选bg模式(即为背景设计模式),烧写外部SPI Flash时,不中断当前FPGA里正在运行的逻辑功能;而不勾选bg模式,烧写外部SPI Flash前,先停止当前FPGA里正在运行的逻辑。