###
**第一步:新建工程**【切记:顶层文件的实体名作为工程名!!!!!】
File =》New Project Wizard...=》选择工程目录,指定工程名及设计入口,不能有中文路径=》添加已有文件,如果新建的工程,则直接跳过=》器件选择,需要与实际用到的器件相同,Family选择Cyclone IV E,Available device这里选择EP4CE6F17C8;=》设置工具,一般直接next跳过;=》信息确认,如果无误则点击Finish完成;
**修改默认配置:**
Assignments --> Device...--> Device and Pin Option...
Unused Pins:未用到引脚选择,As input tri-stated;
Valtage 引脚默认电压值,选择 3.3-V LVTTL;
**第二步:建立HDL文件**
File-=》New...=》Design Files =》 Verilog HDL File内容如下:写代码,**保存文件,名称与之前设置的入口文件相同;(不然会出现报错)**。
```verilog
/*
* 功能描述:流水灯演示
*/
module demo (
input clk, // 时钟输入(外部50MHz晶振)
input rst_n, // 复位按键
output reg [3:0] led // 4位LED
);
// 寄存器定义
reg [31:0] timer; // 用于定时器计数
// 计时时钟
always @(posedge clk or negedge rst_n)
begin
if(~rst_n)
timer <= 0;
else if(timer == 32'd200_000_000)
timer <= 0;
else
timer <= timer + 1'b1; // 通过脉冲数计算时间
end
// 检测时钟的下降沿和复位的下降沿
always @(posedge clk or negedge rst_n)
begin
if (~rst_n) // 复位信号低电平有效
led <= 4'b0000; // LED灯输出全为低,四个LED灯灭
// 时钟下降沿
else
begin
// 50HMz的时钟下,50个时钟为1us
if(timer == 32'd50_000_000)
led <= 4'b0001;
else if (timer == 32'd100_000_000)
led <= 4'b0010;
else if (timer == 32'd150_000_000)
led <= 4'b0100;
else if (timer == 32'd200_000_000)
led <= 4'b1000;
end
end
endmodule
```
**保存文件,名称与之前设置的入口文件相同;******(不然会出现报错)【顶层文件的实体名作为工程名!!!!!】******
**第三步:分析、综合**
点击Analysis & Synthesis进行综合;
成功:
如果提示:
```verilog
Error (12007): Top-level design entity "jqntest001" is undefined
```
![image-20201119200304455](CPLD工作笔记.assets/image-20201119200304455.png)
那说明需要修改:完全一致。
![image-20201119200111741](CPLD工作笔记.assets/image-20201119200111741.png)
**第四步:引脚分配**
Assignments --> Pins Planner打开引脚分配页面进行分配;
双击引脚对应的Location,弹出引脚选择下拉列表
按照原理图上分配对应的引脚:
CLK--> E1
LED0 --> E10
LED1 --> F9
LED2 --> C9
LED3 --> D9
I/O Standard 根据实际电路选择电平标准,这里选择3.3-V LVTTL;
同一个Bank的引脚的电平标准必须相同;
**注意事项:**
必须综合之后,才能进行引脚分配,否则系统并不知道你用了哪些引脚;
**第五步:编译**
双击Complile Design进行全编译;
或者点击
**第六步:下载测试**
**通过JTAG下载至RAM**
点击Program Device打开编译器;
点击Add File...添加output_files目录下生成的sof文件;
点击Start即可进行下载;
下载完成后会自动运行,掉电后会丢失;
**固化至配置芯片**
**文件转换:**
File --> Convert Programming Files...
Programming file type:
选择文件格式,指定为jic格式,JTAG Indirect Configuration File(.jic)
Configuration device:
选择配置芯片型号,与目标板上的型号一致(EPCS16)
Flash Loader:与目标板上FPGA的类别一致;
Sof Data:选择编译好的sof文件;
点击Generate生成jic目标文件;
(此时可选择Save Conversion Setup... 保本配置参数,以便下次调入)
**下载固化**:
点击Program Device打开编译器;
点击Add File...添加output_files目录下生成的jic文件;
点击Start即可进行下载;
下载完成后,不会自动运行,需要重上电才能正常运行;
**注意事项:**
一般只有在完成调试完成后,交付测试时才需要固化,而在调试过程中,则没必要进行固化下载;