zoukankan      html  css  js  c++  java
  • verilog中include的用法

    Verilog  的`include和C语言的include用法是一样一样的,要说区别可能就在于那个点吧。

    include一般就是包含一个文件,对于Verilog这个文件里的内容无非是一些参数定义,所以

    这里再提几个关键字:`ifdef    `define   `endif(他们都带个点,呵呵)。

    他们联合起来使用,确实能让你的程序多样化,就拿彬哥VGA程序说事吧。

    首先,你可以新建一个.h文件(可以直接新建一个TXT,让后将后缀换成.h)其实这个后缀

    没所谓,.v也是可以的,我觉得,写成.h更能体现出这个文件的意义。

    lcd_para.h中内容如下:

    //    640 * 480 
    `ifdef       VGA_640_480_60FPS_25MHz 
    `define    H_FRONT    11'd16 
    `define    H_SYNC     11'd96  
    `define    H_BACK     11'd48  
    `define    H_DISP    11'd640 
    `define    H_TOTAL    11'd800     
                         
    `define    V_FRONT    11'd10  
    `define    V_SYNC     11'd2   
    `define    V_BACK     11'd33 
    `define    V_DISP     11'd480   
    `define    V_TOTAL    11'd525 
    `endif

    //--------------------------------- 
    //    800 * 600 
    `ifdef       VGA_800_600_72FPS_50MHz 
    `define    H_FRONT    11'd56 
    `define    H_SYNC     11'd120  
    `define    H_BACK     11'd64  
    `define    H_DISP     11'd800 
    `define    H_TOTAL    11'd1040 
                        
    `define    V_FRONT    11'd37  
    `define    V_SYNC     11'd6   
    `define    V_BACK     11'd23  
    `define    V_DISP     11'd600  
    `define    V_TOTAL    11'd666 
    `endif

    //---------------------------------

    `define    H_Start    (`H_SYNC + `H_BACK) 
    `define    H_END     (`H_SYNC + `H_BACK + `H_DISP)

    `define    V_Start    (`V_SYNC + `V_BACK) 
    `define    V_END     (`V_SYNC + `V_BACK + `V_DISP)

    这里为VGA定义了两种分辨率,通过

    `define   VGA_800_600_60MHz VGA_640_480_60FPS_25MHz 或

    `define   VGA_800_600_72FPS_50MHz

    来觉得使用哪种分辨率。

    比如,我的xxx.v文件想调用lcd_para.h,xxx.v我可以写到: 

    `define    VGA_800_600_60MHz  //这句要放在"lcd_para.v"的上面,不然编译不通过 
    `include "lcd_para.h"

    那么xxx.v文件中就可以用lcd_para.h中的参数了,且对应是VGA_800_600_60MHz下

    的参数。

    其次`include "lcd_para.h" 这个路径也有一点讲究,xxx.v作为引用lcd_para.h的文件

    它和lcd_para.h在同一文件夹下才能怎么写,就是相对路径一说了。也就是以xxx.v

    为当前路径去引索lcd_para.h文件的位子。所以如果他们不再一个文件夹那么请写出

    更详细(正确)的路径。顺便说一句,lcd_para.h添不添加到工程是无所谓的,只要路径

    对了即可,当然我还是建立添加到工程,且和.v文件放在同一文件夹下,以方便观察和管理。

  • 相关阅读:
    Ubuntu 更换软件源
    Ubuntu 配置 SOCKS5
    Ubuntu 配置 Sha-dow-socks
    frp(内网穿透)
    solr 远程代码执行(CVE-2019-12409)
    多线程处理爬虫
    python实现文件自动排序
    python 实现根据文件名自动分类移动至不同的文件夹
    Centos7如何开启任意端口服务
    centos7默认安装没有连接网络
  • 原文地址:https://www.cnblogs.com/icdz1990/p/4197066.html
Copyright © 2011-2022 走看看