【笔记】【FPGA】 初识Verilog HDL 语法

初识Verilog HDL

Verilog HDL

​ Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

与VHDL比较,Verilog HDL语言的语法更加自由、易学易用,适合算法级、门级设计,代码简洁,发展较快。而VHDL语言的语法更加严谨、较难上手,适合系统级设计,代码冗长,发展缓慢。


Verilog语法

  • 逻辑值有四种:

    • 0:逻辑低电平
    • 1:逻辑高电平
    • z:高阻态、无驱动
    • x:未知逻辑电平
  • 算数运算符

    • +:加法
    • -:减法
    • *:乘法
    • /:除法
    • %:求模
  • 常用关键字(保留字):

    • module、endmodule、input、output、wire、reg、parameter、localparam。PS:parameter对象可以在顶层文件中进行修改,localparam则只能在模块内修改和使用。
  • 常量表示

    • 格式:[换算为二进制后位宽总长度]+[']+[数值进制符号]+[与数值进制符号对应的数值],例如8‘ha6表示8bit十六进制数a6。
  • 阻塞赋值和非阻塞赋值

    • 阻塞赋值:每条语句执行完毕之后才能执行下一条语句。
    • 非阻塞赋值:每条语句并行执行。
    • 例如:a=b;c=a;表示先执行a=b操作,再执行c=a操作。a<=b;c<=a;则表示两个赋值操作同时进行。
  • always语句

    • always()表示在满足括号中的条件时,执行其中的内容语句。
  • assign语句

    • 通过assign语句,可以针对wire类型变量进行逻辑操作,用来将一个信号与一个表达式相连接。
  • 归约运算符按位运算符(以&运算为例)

    • 归约与:一元运算符,&m表示m中所有的比特相与。例如&4'b1101=1&1&0&1=1'b0
    • 按位与:二元运算符,m&n表示m中每个比特与n中每个比特相与。例如4'b1010 & 4'b0101=4'b0000
  • 逻辑运算符

    • 二元运算符,运算符两边只有真或假,非零为真,为零为假。
  • 关系运算符

    • 一般用于进行条件判断,包括>,<,>=,<=,==符号。
  • 移位运算符

    • 包括>>和<<符号,将运算符左边的操作数左移或右移指定的位数。
  • 位拼接运算符

    • 由一对花括号和逗号组合而成,例如d={a,b,c}
  • 条件运算符

    • 形式为A?B:C,意为如果A为真,则B作为表达式的值,如果A为假,则C作为表达式的值。
  • 优先级为:归约运算符>算术运算符>移位运算符>关系运算符>"==“和“!=”>按位运算符>逻辑运算符>条件运算符

  • 系统函数:Verilog语言预先定义的函数,大多数只能在方针中使用。

    • timescale 1ns/1ns表示时间尺度预编译指令,时间单位/时间精度
      • “#”+数字表示延时相应的时间。
      • 时间单位不能比时间精度小。
    • $display:用于输出打印信息。
      • $display("%b+%b=%d",a,b,c");,类似C语言中的printf函数。
    • $write:用于输出和打印信息。
      • $write("%b+%b=%d\n",a,b,c");,与display的格式相同,但是display语句输出可以自动换行,而write语句输出结束后不会自动换行。
    • $strobe:用于输出和打印信息。
      • 格式与之前两个语句相同,但是无论语句出现在什么位置,输出都是在程序的结尾执行。
    • $monitor:用于持续监测变量。
      • 格式同上,作用是只要语句中的变量的值发生变化,就执行一次输出语句。
    • $stop:暂停仿真。
    • $finish:结束仿真。
    • $time:时间函数,用于返回64位当前仿真时间。
    • $random:用于产生随机函数,返回随机数。
    • $readmemb:用于读取二进制文件函数,$readmemh:用于读十六进制文件函数。
      • 使用格式为:$readmemb("<数据文件名>",<存储器名>);,例如$readmemb("aaa.txt",b);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值