verilog
- 电路:
模拟信号: 连续
数字信号:离散
2.可编程逻辑器件
CPLD:基于“乘积项”的与或逻辑阵列
FPGA:基于"查找表"的CLB阵列
-
verilog和c
verilog:硬件描述语言,会生成电路,并行
c:软件编程语言,串行
即FPGA和单片机的区别 -
数字电路基础知识
0:低电平
1:高电平
X:未知,可能是高电平也可能是低电平
Z:高阻态,悬空状态
二进制:b, 4’b0101
八进制:o
十进制:d, 4’d2: 4位十进制2
十六进制:h, 4’ha
默认是32位,十进制
可通过添加下划线增加可读性,如: 16‘b1001_1010_1010_1001
标识符:用于定义模块名,端口名,信号名。标识符第一个字符必须是字母或下划线,区分大小写
5.数据类型
寄存器数据类型reg
reg [31:0] delay_cnt; // 32位延时技术
reg key_reg;
只在always和initial语句中被赋值,默认初始值为不定值X,不可在定义寄存器时赋值。
时序逻辑即always语句带有时钟信号,则该寄存器变量对应为触发器
组合逻辑即always语句不带时钟信号,则改寄存器对应硬件连线
线网数据类型
表示结构实体(例如门)之间的物理连线,不能存储值,它的值由驱动它的元件所决定。
驱动线网类型变量的元件有门、连续赋值语句、assign等
如果没有驱动元件连接到线网类型的变量上,则该变量就是高阻的,其值为z.
wire和tri
wire key_flag;
参数数据类型
常量,parameter定义
parameter H_SYNC = 11'd41;
常用于定义状态机状态、数据位宽和延迟大小等。
- 运算符
算数运算符
关系运算符
逻辑运算符
条件运算符: ?:
位运算符
移位运算符