• 18.07.05 FPGA入门笔记(1)——“二选一多路器”的开发以及入门诸多注意事项


            开始下定决心学习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. 编译可以通过不代表仿真就正常


    先到这里了!!!

    明天继续学编写仿真脚本!!!


       

  • 相关阅读:
    前端笔记-css sprite,font+html,font+css
    Python基础教程(第2版•修订版)代码清单2-3 勘误
    Python基础教程(第2版•修订版)代码清单2-3 勘误
    程序员健康Tips
    程序员健康Tips
    WAMP安装,期间提示丢失VCRUNTIME140.dll
    WAMP安装,期间提示丢失VCRUNTIME140.dll
    安装Vmware时竟然也会报错,错误信息见图
    安装Vmware时竟然也会报错,错误信息见图
    无符号数tips
  • 原文地址:https://www.cnblogs.com/LYT-Dveloper/p/12834190.html
Copyright © 2020-2023  润新知