在Lattice 的ECP5U FPGA上,通过SPI接口对SPI FLASH进行读写操作,在管脚分配的时候,spi_clk并不能进行管脚分配,此时需要用到USRMCLK的原语:
USRMCLK U2(.USRMCLKI(spi_clk), .USRMCLKTS(spi_csn)) /* synthesis syn_noprune=1 */;
上面的代码中 spi_clk 是输出给SPI的时钟MCLK,spi_csn是SPI的片选管脚,这里用来使能SPI的时钟,用于在ECP5加载完程序后,将SPI的MCLK切换到用户提供的时钟。
原语的具体用法参见《fpga_library.pdf》文档中有关USRMCLK的描述。