赞
踩
目录
0、1、X(不定)、Z(高阻态 悬空状态)
二进制 b:4’b0101 四位二进制数字0101
八进制 o
十进制 d:4'd2 四位十进制数2(二进制0010)
十六进制 h:4'ha 四位十六进制数a(二进制1010)
若未指定,默认32'd(前面的位数是指二进制的位数)
用于定义模块名、端口名、信号名
任意一组字母、数字、&、_的组合
推荐:sum cpu_addr clk_50 clk_cpu
关键字reg 默认初始值x
- //reg difine
- reg[31:0] delay_cnt; //延时计数,32位寄存器(0~31),指定位宽时高位在前
- reg key_reg; //未指定位宽,默认为1
只能在always、initial语句中被赋值
若时序逻辑,always语句带时钟信号,该寄存器为触发器
若组合逻辑,always语句不带时钟信号,该寄存器对应变量为硬件连接
表示结构实体之间的物理连线
关键字wire/tri 不能存储值,是由驱动他的元件(门、连续赋值语句、assign)决定的,若无驱动,则默认为高阻
- //wire define
- wire key_flag; //按键标志,默认1位
即常量用parameter定义
- //parameter define 4.3'RGB LCD
- parameter H_SYNC = 11'd41; //行同步。可以一次定义多个参数,参数参数之间需要用逗号隔开
常用于定义状态机的状态、数据位宽、延迟大小。
算数运算符:+ - * /(整除,只保留整数部分) %(模除,求余)
关系运算符:>,<, <=,>=,==,!=
逻辑运算符:!a, a&&b, a||b
条件运算符:?:(a?b:c 如果啊为正,就选择b,否则选择c)
result = (a>=b)?a:b; //a,b取高位
位运算符:~a, a&b, a|b, a^b (若两变量位宽不同,小位宽前补零)
移位运算符:a<<b(a左移b位),a>>b(a右移b位)
用0填补移出的空位:
4'b1001<<2=6'b100100(位宽增加)
4'b1001>>1=4'b0100(最后一位丢弃,空位用0补齐)
拼接运算符:{a,b}(将a和b拼接起来,作为一个新的信号)
c[11:0]= { a[7:0],b[3:0] }
运算符的优先级
注释方式:
//本行
/*可以拓展
到多行*/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。