数字IC必修之Verilog知识点入门——基础知识基本变量及操作符(面试小白考试)

  1. 命名开头不能使用数字和标识符
  2. 分大小写
  3. 行注释//
  4. 块注释/*xxxxx*/
  5. value : 0,1,x(悬空态,unknown logic),z(高阻态)
  6. Verilog中数字表达形式 12‘0 3zx7 = 011zzzxxx111
  7. Bit extension: 0,x or z 可以extend 。 其他extend前面加0
  8. Net: 逻辑驱动的硬件导线,不连接时是‘z’态,有四种线分别是 wire, wand,wor,tri
  9. 线与,线或逻辑一般不用因为会造成一条线被2种驱动
  10. wire Y = A&B ; 省略 assign的写法
  11. always 模块里面的左边的变量必须是reg型
  12. 阻塞 = , 值传递有顺序
  13. 非阻塞 <=, 用在时序电路种 end的时候值同步传递
  14. integer i,k; real r; integer是整数形式没有赋初始值,real是小数形式初始值0.0. r = 2.9; k = r; (k = 3 四舍五入)
  15. time my_time; (declaration) my_time = $time; // get current sim_time 返回仿真时间
  16. vector 向量 reg [1:4] busB ; wire [3:0] busA;
  17. array 数组 reg [7:0] mem[0:1023]; // 1024 8 bit regs 对memory进行建模
  18. array limitation:

1.不能访问数组子区间。 vector可以
2.没有多个方向的数组 reg var[1:10] [1:100]; wrong!! Systemverilog 可以
3. real 数据形式没有数组

  1. Strings 8位8位二进制ASCⅡ码的形式表示所以有 reg [8*13:1] 13个字符共104位
  2. escaped chars(转义符):

\n newline
\t tab
%% %
\\ \
\" "

  1. logic operators: && and, || or, ! not 结果是 ONE bit

x || 0 = x
x && 0 = 0 (强调)

  1. bitwise operators

& bitwise AND
| bitwise OR
~ bitwise NOT
^ bitwise XOR
~^ or ^~ bitwise XNOR

  1. reduction operator
    a = 4’b1001;
    c = | a; // c = 1|0|0|1 = 1

& AND
| OR
^ XOR
~& NAND
~| NOR
~^ or ^~ XNOR

  1. shift operators 总是用0补充,移位后与原数相同位数

>> shift right
<< shift left

  1. concatenation operator
    operands must be sized
    catr = {4{a}, b, 2{c}}; 4倍a 2倍c拼接

  2. relational operators

>
<
>=
<=

  1. equality operators

== logical equality
!= logical inequality
=== case equality
!== case equality

4’b 1z0x == 4’b 1z0x -> x
4’b 1z0x != 4’b 1z0x -> x
4’b 1z0x === 4’b 1z0x -> 1
4’b 1z0x !== 4’b 1z0x -> 0

  1. conditional operator

(sel)?A :B 对选择器进行建模

  1. arithmetic operators

+,-,*,/,%
if any operand is x the results is x
Negative registers:
regs can be assigned negative but are treated as unsigned
reg [15:0] regA;
regA = -4’d12; // stored as 216 -12 = 65524 类似补码
regA/3 evaluates to 21861
Negative integers:
integer intA;
int A = -12/3; // evaluates to -4 (no base spec)
intA = -'d12/3; // evaluates to 1431655761(base spec)

-4’d12 表示 2^32-12 有拓展,所以除以3之后结果是1431655761。
如果使用’sd 就是有符号位的 0~9 -4‘sd12 就会等于3

  1. Operator Precedence (优先级)—终极秘诀 加括号
  2. Hierarchical Design
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值