• FPGA学习笔记(四)——Verilog基本语法


    ###### 【该随笔中部分内容转载自小梅哥】 #########

    • 组合逻辑:    多路选择器、加法器(半加器、全加器)、译码器(地址译码器、显示译码器、2-4译码器、3-8译码器)、乘法器
    • 时序逻辑:    计数器、分频器、定时器、移位寄存器 

    一、Verilog文件的基本结构

         1、模块声明     模块名    端口列表
         2、端口类型、位宽定义
         3、功能描述
    //模块描述方式一(先列出端口,再描述端口类型)
    //此方式虽然行数多,但是方便后面例化端口,推荐使用
    module  name( 
            ,
            ,
            //最后一个不需要“,” 
    );
        //端口类型描述
        //功能描述
    endmoule
    
    //模块描述方式二(端口列表和端口类型一起描述)
    module  name( 
       //端口列表 + 类型描述
         );
        //功能描述
    endmoule

    二、数据类型

    • 线与型wire(默认值z—高阻)    
    • 寄存器型reg
    • 存储器型(memory)
                   memory型数据常用于寄存器文件、ROM和RAM建模等,是寄存器型的二维数组形式,它是将reg型变量进行地址扩展而得到
      
    //一般格式:
    reg[n-1 : 0] 存储器名[N-1 : 0];
    //定义位宽为n,深度为N的寄存器组
    •  parameter型(常量参数)(也可以用localparam)

    三、数据表示

    assign x = 4'b1001;      //二进制
    
    assign x = 4'd9;          //十进制
    
    assign x = 4'hc;          //十六进制

    四、运算

        1、加(+)——加法器
                减(-) ——减法器(逆运算)
                乘(*) ——乘法器
                除(/) ——除法器ip核(尽量不用)
     
     2、 逻辑运算
                逻辑与&&,或||,非!(运算结果只有一位true/false
                按位与&、或|、非~、异或^、同或~^(运算结果和输入位数一样
  • 相关阅读:
    Python if __name__ == "__main__" 的含义
    自己用
    phpstorm && pycharm
    API Design for C++ 一本书值得一看
    std::set 使用
    Using Windows Web Services
    SOA 好好了解下
    NI Measurement Studio Enterprise 8.6
    那天看看
    内存映射 那天自己改改
  • 原文地址:https://www.cnblogs.com/Mculover666/p/9066055.html
Copyright © 2020-2023  润新知