FPGA基本设计流程资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA基本设计流程
首先建立工作库目录,以便设计工程项目的存储。注意不要将文件夹
1 建立工作库文件夹和编辑设计文件
1.1 新建一个文件夹(注意文件夹不能用中文,也不要用数字)
任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库(Work Library)。一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。在建立了文件夹后就可以将设计文件通过Quartus II的文本编辑器编辑并存盘,这里新建文件夹在E盘中,取名为 jsq,则其路径是e:\jsq。步骤如下:
1.2 源程序输入
打开计算机桌面上图表,选择菜单File→New,出现如图1所示见面,在New窗口Device Design Files中选择编译文件的语言类型,这里选择VHDL File,选好后用鼠标左键点击OK,出现源程序输入窗口如图2所示(以十进制为例)。
图1 选择编译文件的语言类型
图2 源程序输入窗口
源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10 IS
PORT (CLK,RST,EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC );
END CNT10;
ARCHITECTURE behav OF CNT10 IS
BEGIN
PROCESS(CLK, RST, EN)
VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位
ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿
IF EN = '1' THEN --检测是否允许计数(同步使能)
IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零
END IF;
END IF;
END IF;
IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号
ELSE COUT <= '0';
END IF;
CQ <= CQI; --将计数值向端口输出
END PROCESS;
END behav;
1.3 文件存盘
选择File→Save As命令,找到已建立的文件夹e:\jsq,存盘文件名应与实体的名字一致,即CNT10,其见面窗口如图3所示
图3 文件存盘
单击“否”按钮,则按以下方法进入创建工程流程。
2. 创建工程
2.1打开建立新工程管理窗
选择File→New Preject Wizard工具选项创建设计工程命令,即弹出“工程设置”对话框如图4所示,单击对话框最上一栏有侧的“…”按钮,找到文件夹e:\jsq,选种已存盘的文件CNT10,再单击打开按钮,既出现如图4所示的设置情况。对话框中第一行表示工程所在的工作库文件夹,第二行表示此项工程的工程名,第三行表示顶层文件的实体名。
图4 New Preject Wizard创建工程CNT10
2.2 将设计文件加入工程中
单击图4中下方的Next按钮,出现如图5所示的对话框,在弹出的对话框中单击File name栏的按钮,将与工程相关的所有VHDL文件加入此工程,加入完成后点击Next按钮。
图5 将所有的工程VHDL文件加入此工程图
2.3 选择仿真器、综合器和目标器件的类型
点击图5中Next 按钮,即弹出如图6所示的仿真器和综合器及目标器件对话框。其仿真器和综合器及目标器件设置如图6所示。设计完成后点单击Finish 按钮。
图6 仿真器和综合器类型设置图
3. 编译前设置
选择FPGA目标芯片。目标芯片的选择也可以这样来实现:选择Assignmemts菜单中的settings项,也可以弹出图6对话框。
选择配置器件的工作方式。单击图6中的Device & Pin Options按钮,进入选择窗,这将弹出Device & Pin Options窗口,其对话框如图7所示。在Configuration选项页,选择配置器件为EPCS4,其配置模式可选择Active Serial。这种方式只对专用的Flash技术的配置器件(专用于Cyclone系列FPGA的EPCS4和EPCS1等)进行编程。注意,PC机对FPGA的直接配置方式都是JTAG方式,而对于FPGA进行所谓“掉电保护式”编程通常有两种:主动串行模式(AS Mode)和被动串行模式(PS Mode)。对EPCS1/EPCS4的编程必须用AS Mode。
图7 选择配置器件工作方式图
4 全程编译
Quartus II编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错,逻辑综合、结构综合、输出结果的编辑配置,以及时序分析。在这一过程中,将设计项目适配到FPGA/CPLD目标器中,同时产生多种用途的输出文件,如功能和时序信息文件、器件编程的目标文件等。编译器首先检查出工程设计文件中可能错误信息,供设计者排除。然后产生一个结构化的以网表文件表达的电路原理图文件。编译前首先选择Processing菜单的Start Compilation项,启动全程编译。这里所谓的全程编译(Compilation)包括以上提到的Quartus II对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。编译过程中要注意工程管理窗下方的“Processing”栏中的编译信息。如果工程中的文件有错误,启动编译后在下方的Processing 处理栏中会显示出来,如图8所示。对于Processing栏显示出的语句格式错误,可双击错误信息此条文,即弹出对应的vhdl文件,在深色标记条处即为文件中的错误,再次进行编译直至排除所有错误。
图8 全程编译后信息图
5 时序仿真
对工程编译通过后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。以VWF文件方式的仿真流程的详细步骤如下:
(1)打开波形编辑器。选择菜单File中的New项,在New窗口中选择Other Files中的Vector Wavefor 如图9所示,单击OK按钮,即出现空白的波形编辑器如图10所示,注意将窗口扩大,以利观察。