Verilog入门基础语法学习

学习verilog前先简单了解一下数字系统设计流程:
逻辑设计(前端)—电路实现(后端)—系统验证
前端:逻辑设计,顾名思义就是通过编程对电路进行描述,而在这里用到的语言就是硬件描述语言(HDL),HDL可以在不同层次对数字电路的结构、功能和行为进行描述。其中常见的硬件描述语言有Verilog HDLVHDL
后端:就是将HDL所描述的电路通过综合工具将其转化为门级电路网表,然后将其与某种工艺的基本元件逐一对应起来,再通过布局布线工具转化为电路布线结构。
下面进入verilog的学习。

Verilog语言

  1. Verilog和C的区别?
    (1)Verilog是硬件描述语言,因为在下载到FPGA之后,会生成电路(给一个时钟信号各个模块会同时开始工作),所以Verilog是并行运行的;
    (2) C语言是软件编程语言,编译下载到单片机之后,是存储器中的一组指令。而单片机处理软甲指令需要取值、译码、执行,这个过程是串行执行的。
    (Verilog和C的区别也是FPGA和单片机的区别,FPGA由于全并行处理,所以处理速度非常快。)

  2. Verilog基础知识
    (1)逻辑值
    逻辑0:表示低电平,对应电路GND;逻辑1:表示高电平,对应电路VCC;
    逻辑X:表示未知;逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态。(和X区分,X是高低电平的一种,而Z是悬空的,可能是高低之间的一种状态)
    (2)标识符(identifier)
    标识符用于定义模块名、端口名、信号名等。它可以是任意一组字母、数字、$和下划线符号的组合,但是标识符的第一个字符必须是字母或者下划线,标识符是区分大小写的。
    (3)数据类型
    主要有三大数据类型:寄存器数据类型、线网数据类型和参数数据类型。
    寄存器类型(reg):①reg类型数据的默认初始值为不定值x;②reg类型的数据只能在always语句和initial语句中被赋值;
    线网数据类型:①包括wire型和tri型,常用wire型;②表示结构实体之间的物理连线;③不能存储值,它的值是由驱动它的元件(门、连续赋值语句、assign)所决定的。
    参数数据类型:①参数就是一个常量,在Verilog中用parameter定义常量;②可以一次定义多个参数,参数与参数之间需要用逗号隔开;③每个参数定义的右边必须是一个常数表达式;④参数型数据常用于定义状态机的状态、数据位宽和延迟大小等。
    (4)运算符
    条件操作符:a ?b :c 代表如果a为真,就选择b,否则选择c;
    位运算符:①~a:将a的每个位进行取反;②&:与操作;③|:或操作;④^:异或操作
    移位运算符:①a<<b 代表将a左移b位(左移位宽增加);②a>>b 代表将a右移b位(右移位宽不变)

3.Verilog基础语法
(1)结构语句
initial:它在模块中只执行一次,它常用于测试文件的编写,用来产生激励信号或者给变量赋值。
always:①不断地重复活动;②always的敏感列表可以是沿触发(时序逻辑)或电平触发(组合逻辑),如果组合逻辑变量很多,那么可以写成always@(*)
(2)赋值语句
阻塞赋值:“=”(阻塞的概念就是在一个always块中,后面的赋值语句是在前面的赋值语句结束后才开始赋值的);在串行块begin中顺序执行;赋值立即生效;用于描述组合逻辑
非阻塞赋值:“<=”;(非阻塞的概念就是,执行计算等号右边的结果并暂存,同时不阻塞后面的语句进行计算);赋值不立即生效;用于描述时序逻辑;只能对寄存器类型的变量进行赋值,因此只能用在initial块和always块中,并行计算。
(3)条件语句
case语句:包括控制表达式和分支表达式,控制表达式就是case后面括号里面的变量,分支表达式就是变量每个值对应的语句。(所有表达式的位宽必须相等)

case (num)
      4'h0 :  led <=4'b0000;

(4)组合逻辑的实现
方法一:always@(敏感信号):建议使用阻塞赋值;always模块中的信号必须定义位reg型,仅仅是语法要求,实际实现仍然是wire类型
方法二:assign描述的赋值语句:信号只能被定义为wire型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值