文件与module的对应关系

Posted on 2024-04-01 21:06  绿叶落秋风  阅读(15)  评论(0编辑  收藏  举报

模型功能

  • verilog的文件和module是一一对应的关系
  • verilog支持include,也就是可以使用头文件vh
  • verilog的文件在工程模式下自动更新调用
  • 文件的层次划分可以按照逻辑结构进行展开

模型框图

实现步骤

  1. 文件与模块同名
  • 虽然一个文件可以放入多个模块
  • 但是这种结构不利于工程模式的模块调用
  • 比如modelsim就无法寻找不同名的模块
  1. 文件的包含使用`include
  • 可以使用相对路径以防止移植时文件丢失
  • 包含的文件可以是任何文件,但是都会按照预编译的原则进行编译
  • vivado支持全局包含,但是这种只能在vivado工程模式使用,一致性不好,不推荐使用
  1. vivado设置文件的自动更新
  • vivado支持对修改的文件进行自动更新
  • 但是这种更新必须是在程序未运行过程中
  • 当程序运行,源文件进入锁定,不会再进入vivado的运行
  • 但是预编译文件不在此列
    • 如果使用hook文件在综合前修改预编译文件
    • 就可以实现自动修改文件
  • 还有就是使用脚本进行运行,也可以在自动修改文件后在综合
  • 基于这点,就可以使用hook文件实现verilog版本的自动更新
  1. 文件的层次划分
  • 对于一般的工程,应该包含以下的层次:
    1. 顶层:负责调用所有的模块以及控制FPGA的IO的名称的文件
    2. 子系统层: 包含独立时钟域的复杂逻辑处理单元
    3. 模块层: 负责单时钟域逻辑功能的单元
    4. 区块层:负责关联各种功能模块的文件
    5. 功能层:各种功能的实现逻辑,比如驱动、交互、流水线、状态机等等
  • 明确的层次划分有利于后续的拓展
    • FPGA的逻辑闭合是稳定性和可读性的关键
    • 以最少的信号完成最大的逻辑的定义,可以有效增加逻辑的稳定性
    • 所以,使用标准的逻辑划分,可以增加设计时的区分度,提高效率

最终效果

  • 略,本章主要是提示层次划分和文件的关系,无具体的模型

调用接口