Verilog语言入门学习(1)

一、数字逻辑回顾:

数字电路中:组合逻辑、时序逻辑

组合逻辑:

时序逻辑:电路逻辑输出值跟当前的输入值和电路的当前状态有关;如何保存当前状态:需要有储存功能的cell,比如:Flip-Flop,Latch

逻辑值:在数字电路中,1个bit有四种状态(四值逻辑)

 数值的二进制表示:

 N比特的无符号二进制取值范围:[0,2N-1]

有符号数的二进制表示:(原码,反码,补码)

 数字电路系统一般使用补码表示数值,在数学上加减比较方便

数值的十六进制表示:二进制按照4BIT表示为十六进制

二、什么是Verilog?

Verilog是一种硬件描述语言:用程序设计语言来描述数字电路的功能,提高设计效率。早期数字电路设计是基于原理图输入的,类似电路板的PCB原理图设计

类似的硬件描述语言:

VHDL、SystemVerilog、Chisel

 三、Verilog语法:

可综合描述:综合tool能够把verilog描述转化(compile)成基本的数字电路底层cell(与或非gate,寄存器等)的描述。

assign y = a & b; 

不可综合描述:综合tool不能把verilog描述转换为基本的数字电路底层cell的描述。

$display(“hello word.\n”)

verilog设计仿真与实现:通过EDA tool,可以在计算机上对verilog设计的功能进行仿真。

常用的仿真工具(所有verilog描述):

1.Modelsim/Questasim(Mentor)

2.VCS(Synopsys)

3.NC-verilog(Candence)

数字电路设计方法学:

Bottom-Up:从底层cell开始,逐渐往上大家功能;

Top-Down:从底层结构,协议算法开始,向下逐步划分功能模块;再细分各功能模块的功能与IO

目前,基于verilog的数字电路谁通常使用Top-Down的设计方法。因为数字IP/IC的规模很大,需要先抽象思维再细化;verilog给数字电路的设计的抽象思维提供了一种设计开发语言,但是:数字设计和软件设计师不同的,需要Think in Hardware,写代码前需要先设计电路结构。

verilog的功能描述:

Top-Dowan描述数字电路功能:通过模块module的层次化设计,实现一个复杂的数字逻辑功能

 四、verilog语法详细介绍

标识符:

用于定义code中的各种名字,比如:信号,module,define,parameter;

标识符由:字符,数字,下划线组成;

首字母必须是字母或者下划线;

标识符是区分大小写的;

信号名字建议与信号功能相对应:rstn,clk_core,mem_cs,mem_we,mem_dout,mem_din,mem_addr;

关键字:


常用关键字:

 注释:

注释一行:以“ // ”开始,到行末;

注释多行:以“ /* ”开始,到“ */ ”为止的所有内容;

数据物理类型:

线性数据:用于连续赋值语句(assign)描述组合逻辑或者module间的信号连接线;

wire型:

wire      a;   //1bit位宽

wire  [3:0] b;  //4bit

wire  [7:0] c;  //8bit

assign  a = 1'b0;     //连续赋值语句

assign  c = 8'h5a;   //8bit的十六进制数

tri0/tri1 :带下拉、上拉电阻的线性,没有驱动时,会有默认的值0/1,一般综合代码不用;

tri0  s0;

tri1  [20:0]  s1;

寄存器类型:

用于过程赋值语句(always、initial)描述组合逻辑或者时序逻辑(寄存器);

wire [3:0]  din;

reg  [3:0]  d0;  //4bit

reg           d1;//1bit

initial begin   //过程赋值语句

     d1 = 0; #10;

     d1 = 1;

end

always(posedge clk)begin                   //clk端一般就是寄存器

   if(d1)    d0 <= din;

end

  • 26
    点赞
  • 298
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Verilog是一种硬件描述语言(HDL),用于设计和描述数字电路和系统。下面是一个简单的Verilog语言入门教程的概述: 1. Verilog简介:了解Verilog的背景和用途,以及它在数字电路设计中的作用。 2. 模块和端口:学习如何定义Verilog模块,并定义内部信号和外部端口。 3. 数据类型和变量:了解Verilog中的数据类型(包括位、整数和实数)以及如何声明和使用变量。 4. 运算符和表达式:熟悉Verilog中的运算符和表达式,包括算术、逻辑和位运算符。 5. 控制结构:学习如何使用条件语句(如if-else和case语句)和循环语句(如for和while循环)来控制Verilog代码的执行。 6. 组合逻辑:了解如何使用逻辑门和逻辑运算符来实现组合逻辑电路。 7. 时序逻辑:学习如何使用时钟信号、触发器和寄存器来实现时序逻辑电路。 8. 模块实例化:了解如何在Verilog代码中实例化其他模块,并将它们连接起来。 9. 仿真和测试:学习如何使用Verilog模拟器来测试和验证设计。 10. 高级主题:进一步学习Verilog的高级特性,如多层次层次化设计、参数化模块和系统任务。 这只是一个简要的概述,你可以通过阅读Verilog语言的教程和参考资料来深入学习。一些常用的Verilog教程和资源包括CSDN、EDAboard和ASIC World等网站上的教程、书籍和在线课程。希望这些信息对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值