zoukankan      html  css  js  c++  java
  • FPGA学习笔记(一)Verilog语法基础

    一、变量类型

        ①数值

        数值表示采用 <二进制位数>'<数值表示的进制><数值>的结构。

        其中进制可以为b、o、d、h分别代表二、八、十、十六进制。

        例如22'd0代表22位二进制数用十进制表示为0。

        ②寄存器类型

        reg声明寄存器类型变量,如 reg[0:3] my[0:63];是64个4位寄存器构成的存储器。

        其中[22:0]代表位宽为23位,最高位在前,含义是[msb:lsb]。

        注意,存储器赋值不能在一条语句内完成,但寄存器赋值可以,类似于数组元素不能一次性全部赋值。

        ③还有input,output类型变量

        ④参数类型parameter

        parameter类似于const类型,是常量,与const的区别是可以在定义时不初始化,但仅能赋值一次。常用于定义延时和变量宽度。

    二、基本用法

        模块开始用module,结束用endmodule

     2.1 延时语句

         ①`timescale 1ns/1ns //定义延时单位和精度,单位和精度均为1ns,注意开头为反引号。

         反引号`代表的是编译器指令,与C语言中#一样。

         ②assign #n Sum= A + B; //n应该替换为数字,代表几个延时单位

         每当右边的操作数有所变化时,延时n个单位后,会执行这条语句,将新值赋给左边。

     2.2 行为描述语句

       2.2.1 初始化语句

         初始化语句只执行一次。

         用法

         initial

         begin

          //code

         end

       2.2.2 循环语句

         always @ (条件)

         begin

          //code

         end

       注意:在块外的语句都是并行,在begin-end内是串行,在fork-join内是并行的。

    三 操作符

       当使用赋值运算符的时候,=为拥塞赋值,<=为非拥塞赋值。拥塞赋值的含义是当前面的赋值语句完成后,才会执行下面的赋值语句。

  • 相关阅读:
    MyBatis学习存档(3)——mapper.xml映射文件
    Springboot Idea热部署以及重启后代码也不生效的问题解决
    属性值为空不更新到数据库工具类
    Poi工具类快速生成Ecxel
    Nginx配置ssl,实现https访问
    商城多商品组合数据格式
    Nginx泛解析配置
    Java支付宝支付接入流程,wap,app接入方式
    springboot配置@ResponseBody注解依然返回xml格式的数据
    通过aop记录日志,记录修改前后的数据,精确到每个字段
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154267.html
Copyright © 2011-2022 走看看