zoukankan      html  css  js  c++  java
  • Verilog语法遗漏点

    1 关于参数定义

    Parameter:parameter只能定义在端口生命的前面,如

    Input[whith:0] a;

    Parameter whith=4;

    这样的参数定义出现在声明的后面会报错

    2 关于always

    always块不仅可以描述时序逻辑,也可以描述组合逻辑

    如wire a,b;  assign a=b

    与reg a; wire b;  always@(b) a=b;     可见,always块内允许阻塞赋值

    不过需要注意的是

    always中,等号左边的变量必须是reg型,而不能是wire型,无论是组合逻辑还是时序逻辑均成立,但是最终变量a被综合成了连线,而不是寄存器!!!!

    3 关于if  else

    If…else…语句,只能依附于always等程序模块不能单独使用,如果想单独使用,用三目运算符代替

    4 不定态X表示不可推断电平,高阻态Z相当于断路状态

    5 REG型量不一定被综合成寄存器

    Verilog中,块内被赋值的变量,都必须是寄存器reg类型!!如上述2中的介绍,但是reg型变量不一定被综合成寄存器,组合逻辑中被综合成互连,不完全组合逻辑中,描述成锁存器。所以寄存器变量不一定被综合成寄存器。

    6 归约运算符

    归约运算符是一种单目运算符;被操作数具有一定的位宽,操作的结果都是1位。

    如wire[3:0]bus 4’hf;

      Wire result = &bus;

      上述赋值相当于assign result=bus[0]&bus[1]&bus[2]&bus[3];//归约与运算符

    如果是|,相当于assign result bus[0]| bus[1]|bus[2]|bus[3];//归约或运算符

      如果是^,相当于………………………………………………………………..//归约异或运算符

    实例参数重载方式,这个是为了输入端口宽度进行灵活配置的方式(遇到再看)

    8 关于alwaya@()敏感列表

    Always@(posedge clk)

    Always@(signal)

    关于电平敏感,表示电平发生变化就执行块内的内容。

  • 相关阅读:
    多时钟系统3 Crossing clock domains Task
    多时钟系统2 Crossing clock domains Flag
    多时钟系统4 Crossing clock domains Data bus
    sytem.h
    TDA2003功放电路
    windows ddk
    关于DSP的一些基本知识和用法(资料来源于合众达网页)
    [FPGA][NiosII]内置LCD控制器使用心得(转)
    FPGA pins
    DSP2407配置步骤
  • 原文地址:https://www.cnblogs.com/shaonianpi/p/9991670.html
Copyright © 2011-2022 走看看