新闻中心

EEPW首页>EDA/PCB>设计应用> 一种高档FPGA可重构配置方法

一种高档FPGA可重构配置方法

作者: 时间:2009-08-25 来源:网络 收藏

为简化 CPLD的控制时序,便于对进行自动配置,将 Flash的存储空间按顺序划分为 6个块,分别存储 6个配置数据。每个块包含 20个扇区,1.25MBytes存储空间。

本文引用地址://m.amcfsurvey.com/article/191951.htm

CPLD控制部分软件设计与实现
3.1 EPM7064A的 Verilog HDL描述
EPM7064A是整个配置电路的核心,它完成 Flash配置数据的加载和配置时序的产生。按照由上至下的进行设计,将其分成三个主要功能模块,即数据加载过程中与 PC机通讯的 UART模块、写 Flash时序产生模块和配置时序产生模块,分别由 Verilog HDL硬件描述语言实现。
数据加载过程中,EPM7064A的 UART模块与 PC机通讯,同时产生 Flash编程控制字,将 PC机送来的数据写入指定的块。其主要工作过程是串口模块接收到一个字节数据后,其 DATARDY有效,触发 Flash写模块先将三个控制字数据 AA、55、A0写入 Flash,然后将接收到的数据写入 Flash。写 Flash仿真时序图如图 4所示。

数据读取和配置时序模块的主要程序代码如下:

module conf( clk20m, //设时钟频率20Mhz
…… ) //端口列表
…… //输入输出口定义
…… //寄存器定义
…… //配置模式参数定义
…… //工作状态参数定义
always@(posedge clk)
begin
if (conf_start==1) //配置启动脉冲启动一次配置
nCONFIG=0;
if(nCONFIG==0)
count1=count1+1;
if (count1=50) //进入复位状态,复位时间大于2us
state=reset;
if(count1>50)
nCONFIG=1;
if(nSTATUS==1)
state=configure; //进入配置状态
if(CONF_DONE)
begin state=init; count2=count2+1;end //进入初始化状态
if(INIT_DONE)
begin state=user_mode;count2=0;end //进入用户状态
end
always@(posedge clk)
begin
case(state)
reset: begin



评论


相关推荐

技术专区

关闭