Verilog课件概要.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog课件概要

逻辑设计与FPGA 模块的结构 “模块”(module)是Verilog的基本设计单元。 一个模块是由两部分组成的,一部分描述接口,另一部分描述逻辑功能,即定义输入是如何影响输出的。 module block (a,b,c,d); input a,b; output c,d; assign c= a | b ; assign d= a b; endmodule 程序模块和电路图符号是一致的,电路图符号的引脚也就是程序模块的接口。而程序模块描述了电路图符号所实现的逻辑功能。 模块的结构 从上面的例子可以看出: Verilog模块结构完全嵌在module和endmodule声明语句之间; 每个Verilog程序包括四个主要部分:端口定义、I/O说明、内部信号声明、功能定义。 端口定义 模块的端口定义: 声明了模块的输入输出口。其格式如下: module 模块名(端口1,端口2,端口3,………); 如:module DFF ( q,d, clk, reset_n ) ; 模块的结构 I/O说明:对输入输出端口的属性进行定义,包括端口的方向、信号位宽等。 定义端子方向有如下语句: input(输入端口) output(输出端口) inout(双向端口) 定义信号位宽: 信号类型 [MSB:LSB] 信号名 如:input  [11:0]  address; inout  [ 7:0]   data; I/O说明也可写在端口声明语句里,Verilog 2001支持下面的描述方式。 module adder_16 (output reg [15:0] sum,output reg cout, input wire cin, input wire [15:0] a, b); 模块的结构 内部信号说明:在模块内与端口有关的和内部用到的wire、reg 进行变量声明。 如: reg [width-1 : 0] R变量1,R变量2, …; wire [width-1 : 0] W变量1,W变量2 ,…; module sample( q, a, b, sel, clk, resetn );    input  a, b, sel, clk, resetn;     output  q;              reg   q;  // 输出端口类型定义 wire   c;  // 模块内信号线的定义 …... endmodule 模块的功能定义 模块的功能定义可采用下面4种方式描述:   1) 数据流方式:assign  2) 行为方式:在always、initial、function、task  3) 结构方式: 内置门原语(在门级)、 模块实例  4) 混合描述方式 模块的功能定义 1、数据流描述方式: 用连续赋值语句“assign” ,只能描述组合逻辑。 连续赋值语句的语法为: assign [delay] LHS_net = RHS_expression 无论右边的操作数何时发生变化, 右边表达式都重新计算, 并且在指定的时延后赋给左边线网变量。 Assign #2 Sum = A ^ B; 如果没有定义时延值, 缺省时延为0。 模块的功能定义 `timescale 1ns/ 1ns module Decoder2x4 (A, B, EN, Z); input A, B, EN; output [ 0 :3] Z; wire Abar, Bbar; assign #1 Abar = ~ A; assign #1 Bbar = ~ B; 。 assign #2 Z[0] = ~ (Abar Bbar EN) ; assign #2 Z[1] = ~ (Abar B EN) ; assign #2 Z[2] = ~ (A Bbar EN) ; assign #2 Z[3] = ~ (A B EN) ; endmodule 连续赋值语句是隐式而非显式的建模方式。 连续赋值语句是并发执行,即各语句的执行顺序出现的顺序无关。 模块的功能定义 时延: Verilog HDL模型中的所有时延都根据时间单位定义。 Assign #2 Sum = A ^ B;

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档