Verilog语言入门学习(1) | 您所在的位置:网站首页 › verilog系统设计教程 › Verilog语言入门学习(1) |
一、数字逻辑回顾:
数字电路中:组合逻辑、时序逻辑 组合逻辑:
逻辑值:在数字电路中,1个bit有四种状态(四值逻辑)
N比特的无符号二进制取值范围:[0,2N-1] 有符号数的二进制表示:(原码,反码,补码) 数字电路系统一般使用补码表示数值,在数学上加减比较方便 数值的十六进制表示:二进制按照4BIT表示为十六进制 二、什么是Verilog?Verilog是一种硬件描述语言:用程序设计语言来描述数字电路的功能,提高设计效率。早期数字电路设计是基于原理图输入的,类似电路板的PCB原理图设计 类似的硬件描述语言: VHDL、SystemVerilog、Chisel 可综合描述:综合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的层次化设计,实现一个复杂的数字逻辑功能 用于定义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 |
CopyRight 2018-2019 实验室设备网 版权所有 |