数字逻辑 Vivado软件结合Modolsim仿真编写varilog语言过程

    科技2022-07-15  132

    几个文件:

    设计文件:design sources   name.v文件

    约束文件:constraints   name.xdc文件

    仿真文件、测试文件:simulation sources    name_tb.v文件    为设计文件输入模拟信号

    几个过程:

    仿真(Simulation):检查逻辑功能是否正确

    综合(Synthesis):是将RTL级电路( 由硬件语言描述的电路)转换到门级电路的过程。

     

    完成一个工程步骤:

    1. 新建工程--》将出现4个添加文件界面,在第一个界面新建或添加设计文件--》配置--》完成

    如果是新建文件,则被新建的文件路径在

    对于弹出的配置input output 的窗口,可忽视,在设计文件中直接写出。

    2. 综合,选择Open Synathesized design,配置xdc文件并保存

    设计文件输入时,接口输入后会有波浪线,在声明后才会消失。

    仿真(测试)文件添加时,是并列的,输入内容调用设计文件后会自然变成有层次的结构。

    3.仿真

    4.综合

    verilog语言

    符号

    %取余采用第一个数的符号。-10%7=-3

    {}级联,将括号中的位拼在一起操作。{n{}}复制内括号n次并级联

    数据类型

    线网(net):最常用wire,连接,两端保持一致,不可存储

    寄存器(register):在下次赋值前保持原值。integer类型是有符号数,reg是无符号数。有符号数赋值给无符号数,verilog自动完成补码运算。

    参数(parameters):相当于宏定义,是常数.

    net和register的主要区别在于能否存储。

    模块

    输入端口能由net、register驱动(实例化模块的端口),但输入端口只能声明为net(该模块内的声明)

    输出端口可以是net、register类型,但只能驱动net。

    上两句可概括为,在设计文件中,input只能声明为net,output可为register和net。

    模块的实例化功能相当于C语言中的调用函数 eg:and(o,i1,i2);但是每个实例化都是模块的一个完全拷贝,并行执行,互不干扰。

    verilog语言有三种描述形式:

    结构型描述:调用and、or、not等模块

    数据流型描述:使用assign关键字的描述

    行为型描述:

     

    fork join中使用<=并行执行

    begin end 中使用=赋值顺序执行

     

     

    Processed: 0.009, SQL: 8