Q

输出时钟是否需要用专用GCLK IO

A

GCLK IO只作用于输入时钟,而输出时钟使用普通IO即可。

Q

如何提高CPLD加载速度

A

有两个参数可以调整器件从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 


Q

使用计数器生成内部复位的推荐写法?

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


Q

使用Device Chain的SVF for SPI加载模式时,bg模式和rf模式有什么区别?

A

这两个选项的作用是不同的:

1. 勾选bg模式,烧写外部SPI Flash时,不中断当前FPGA里正在运行的逻辑功能;不勾选bg模式,烧写外部SPI Flash前,先停止当前FPGA里正在运行的逻辑。

2. 勾选rf模式,烧写外部SPI Flash完成后,会执行一条刷新指令,使FPGA立刻加载新的位流;不勾选rf模式,烧写外部SPI Flash完成后,不会执行刷新指令。


这里要注意的是,如果原有FPGA逻辑功能里会访问SPI Flash,即设置了persist_bit=0,就不能支持勾选bg模式的操作。


Q

多片fpga组成jtag链的时候如何加载?

A

TD软件的Download工具暂时只支持单颗器件的JTAG加载。多片FPGA级联的情况,可使用TD软件的Device Chain工具,生成支持级联的SVF文件并进行加载。

Q

ERAM用作简单双口RAM时,哪个信号可以作为wren使用?

A

可以使用cea信号作为wren使用。

Q

安路CPLD的IO上下拉的阻值范围?

A

IO上下拉是通过电流源来模拟一个电阻,电流源的范围是35uA~250uA,典型值为100uA。上下拉电阻的阻值可以用V/I换算得到,例如VCCIO=3.3V:

– 阻值最小为3.3V/250uA=13.2K

– 阻值最大为3.3V/35uA=94.3K

– 阻值典型值为3.3V/100uA=33K


Q

安路CPLD可以支持背景升级不?

A

可以支持。

在Device Chain工具中,勾选bg模式(即为背景设计模式),烧写外部SPI Flash时,不中断当前FPGA里正在运行的逻辑功能;而不勾选bg模式,烧写外部SPI Flash前,先停止当前FPGA里正在运行的逻辑。