文档详情

Verilog模块module_图文.ppt

发布:2017-02-12约1.26万字共48页下载文档
文本预览下载声明
第二讲 Verilog 语法 Verilog模块module Verilog语法要素 Verilog数据类型及逻辑系统 module能够表示: 物理块,如IC或ASIC单元 逻辑块,如一个CPU设计的ALU部分 整个系统 每一个模块的描述从关键词module开始,有一个名称(如SN74LS74,DFF,ALU等等),由关键词endmodule结束。 端口(Terminal) 模块端口等价于芯片的管脚(pin) 模块通过端口与外部通信 端口列表和端口声明 input  输入端口 output 输出端口 inout 双向端口 也可以采用类似ANSI C格式来声明端口 //D 触发器 module D_FF (input d, clk, clr, output reg q,qb); ………… ………… endmodule module adder ( cout,sum,a,b,cin ); input [2:0] a,b; input cin; output cout; output [2:0] sum; assign {cout,sum}=a+b+cin; endmodule //SR 触发器 module SR_FF (Q, Q_n,S,R); output Q, Q_n; //端口声明 input S,R; nand n1(Q, S,Q_n); nand n2(Q_n,R,Q); endmodule D触发器模块 //D 触发器 module D_FF (d, clk,clr,q,qb); output q, qb; input d,clk,clr; reg q, qb;//输出端口q, qb值保存 always @(posedge clk) begin if (clr) q=1’b0; else q=d; end not (qb,q); endmodule 可以将模块的实例通过端口连接起来构成一个大的系统或元件。 在上面的例子中,REG4有模块DFF的四个实例。注意,每个实例都有自己的名字(d0, d1, d2, d3)。实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。 实例中端口的次序与模块定义的次序相同。 模块实例化与调用程序不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。 .端口与外部信号的连接 在调用模块时,可以用顺序连接和按名连接把模块定义的端口与外部信号连接起来 顺序连接:需要连接的信号需要与模块声明的端口列表一致; 按名连接:端口和外部信号按名字连接在一起. 当设计大规模系统时,端口太多,记住端口顺序不大可能,可以采用按名连接方法。 2.2 Verilog 语法要素 标识符 关键词 空白和注释 常量 字符串 延时# 操作符 1.标识符(identifiers) 标识符是用户在描述时给Verilog对象起的名字 标识符必须以字母(a-z, A-Z)或( _ )开头,后面可以是字母、数字、( $ )或( _ )。 最长可以是1023个字符 标识符区分大小写,sel和SEL是不同的标识符 模块、端口和实例的名字都是标识符 module MUX2_1 (out, a, b, sel); output out; input a, b, sel; not not1 (sel_, sel); and and1 (a1, a, sel_); and and2 (b1, b, sel); or or1 (out, a1, b1); endmodule 合法和非法标识符 合法的: shift_reg_a busa_index bus263 2.关键词 3.空白符和注释 4.整数常量和实数常量 整数的大小可以定义也可以不定义。整数表示为: size’basevalue 其中 size :大小,由十进制数表示的位数(bit)表示。缺省为32位 base:数基,可为2(b)、8(o)、10(d)、16(h)进制。缺省为10进制 value:是所选数基内任意有效数字,包括X、Z。 实数常量可以用十进制或科学表示法表示。 整数常量和实数常量 整数的大小可以定义也可以不定义。整数表示为: 数字中(_)忽略,便于查看 没有定义大小(size)整数缺省为32位 缺省数基为十进制 数基(base)和数字(16进制)中的字母无大小写之分 当数值value大于指定的大小时,截
显示全部
相似文档