当前位置: 代码迷 >> 综合 >> Verlog HDL学习笔记1——Verilog HDL的基本单元模块
  详细解决方案

Verlog HDL学习笔记1——Verilog HDL的基本单元模块

热度:22   发布时间:2023-11-18 00:57:06.0

个人博客:https://www.lhbat.com

参考资料:Verilog数字系统设计与FPGA应用

Verilog HDL 系统的设计

步骤:

  • 1.把系统划分成模块
  • 2.规划各模块的接口
  • 3.对模块的编程并连接各模块的系统设计

Verilog HDL 程序的基本结构

module模块名(端口列表)

端口定义:

  • input 输入端口
  • output 输出端口
  • inout 输入输出端口

数据类型说明:

  • wire
  • reg
  • parameter

逻辑功能描述:

  • 实例化低层模块和基本门级元件
  • 连续赋值语句(assign)
  • 过程块结构(initial和always)

endmodule

模块声明:

模块声明包括模块名和端口列表

端口定义:

端口是模块与外界环境的接口

信号类型说明:

分为端口信号和内部信号
如:寄存器类型: reg 连线类型:wire

// 定义端口的位宽
module test(addr,read,write,datain,dataout)
input[7:0] datain;
input[15:0] addr;
input read,write;
output[7:0] dataout;
wire addr,read,write,datain;
reg dataout;

模块中逻辑功能描述

模块中最核心的部分是逻辑功能描述。

逻辑功能描述的三种方法:

  • 1 .用assign 连续赋值语句(多用在输出信号和输入信号可以建立直接联系的情况下)
    如assign{co,sum} =a+b;
  • 2 .调用元件(侧重电路的结构描述)
  • 3 .用always过程快赋值
    如:
    always @ (posedeg clk)
    begin
    if (reset) out = 0;
    else out = out + 1;
    end