开始下定决心学习FPGA,在这里记录自己每堂课的收获!留给以后的自己和刚刚入门FPGA的朋友,这是对自己的激励,也是对自己的监督!
梅老师的教学前面还有两讲,那两讲的课堂笔记别忘了后续补上!
18.07.05 FPGA开发基本流程
1.工程文件夹的排布参考如下。
(1)doc文件夹存放文档(项目功能描述等)。
(2)img文件夹存放图像文件。
(3)prj文件夹存放工程文件(其下有IP文件夹存放IP核文件)。
(4)rtl存放项目文件。
(5)testbench存放仿真相关文件。
(6)想进行工程文件移植时,只需复制rtl文件夹即可。
2.初步使用Quartus II软件(了解各个工作区的作用以及显示内容)。
(1)菜单栏:所有功能
(2)快捷按钮:常用按钮的功能
(3)工程导航:查询层次结构,包含关系。
(4)文本编辑器:可以关联其他编辑器。
(5)IP库:altera intel 所提供的常用IP核的使用。
(6)任务栏:显示进度和时间,双击可以直接启动任务。
(7)命令行输入窗口:使用TCL脚本和命令行可以提高操作效率。
(8)信息提示窗口:编译警告、编译错误等在此显示,需要特别关注。
3.创建工程的要点。
(1)工程的所有文件都要存放在与此工程相关的文件夹中。
(2)不能使用Quartus ii默认的工程存放目录存放工程文件(Q II安装的根目录下)。
(3)不同的设计项目最好不要放在同一放在同一文件夹下。
(4)文件夹名以及文件夹所在路径不能用中文、空格、括号。
(5)工程名称以及设计文件还不能用数字开头,但是可以使用下划线。
(6)第一栏用于指定路径;第二栏指定工程名,建议直接使用顶层文件的实体名作为工程名;第三栏指定顶层文件实体名。
4.工程顶层的理解
(1)顶层模块将包含整个工程的各个模块,相当于PCB板。
(2)顶层模块实现方式:
使用原理图文件(.bdf)较为直观但是效率低、可移植性差、不易维护。
直接使用HDL语言进行例化。(推荐!)
5.二选一多路器
输出out可以等于a,也可以等于b,到底等于谁有sel决定
6.”二选一多路器“开发实战
(不多说,前面都有!)
模板工程可以开发新器件,如:MAX 10
7.Verilog 语法注意事项(写在注释里)
(1)基本书写格式(module和endmodule等)以及注意事项。
(2)两种端口定义方式
(3) Input定义输入类型
(4)Output定义输出类型
(5)Inout定义三态类型(IIC中用到)
(6)组合逻辑中assign语句的使用(将等号后面的赋给前面的)
(7)判断0和1的多种写法
(7)两种注释方式:单行注释和块注释(与C语言相同)
(8)信息提示窗口中出现“i”表示出现了非法字符。
8.FPGA硬件相关
(1)EP4CE6和EP4CE10的管脚完全兼容,可以替换。
(2)M9K存储器的总容量(Bits)除以9216即可得到其数量。
9.Quartus ii 操作
1. 在view里可以控制视窗
2. Ctlr+n快捷创建文件
3. Ctrl+r打开编译报告
4. 按住Alt,再用鼠标拖选可以进行列编辑
5. 管脚分配
10.simulation waveform editor的使用
11.MODELSIM 的使用步骤
FPGA切忌重现象,轻仿真
(1)设置仿真软件
(2)设置仿真软件路径
(3)编写仿真脚本(testbench文件)
(4)设置NATIVELINK
(5)运行仿真
12.编写testbench测试脚本
1. (键盘右上角)`timescale 1ns/1ps 1ns是步进,以1ns为单位一步一步的进行,换算为ps,精度较低时1ps可以省略(1ps为仿真精度,将换算为1ps进行计算)
2. 顶层模块名与 文件名保持一致
3. 管脚加“.”(英文句号)表示例化
4. 激励源用reg定义
5. 输出用wire定义
6. #表示延时,后面的数字代表的时间有步进时间决定
7. Initial begin 表示仿真开始,仿真时间清零,块内语句顺序执行,时间累加,最后同样也要有end
8. $stop;可以使仿真停止
9. 注意:都要有例化名称
10. 编译可以通过不代表仿真就正常
先到这里了!!!
明天继续学编写仿真脚本!!!