美文网首页
带有parameter的模块端口调用

带有parameter的模块端口调用

作者: li_li_li_1202 | 来源:发表于2018-04-19 16:53 被阅读0次

如果是带有的参数不需要本模块以外的部分修改,则调用模块时不需要考虑参数;如果我们希望能够在本模块以外修改参数,则参数调用通常有两种方法,如下代码:

  1、module_name #( parameter1, parameter2) inst_name( port_map);
  2、module_name #( .parameter_name(para_value),.parameter_name(para_value)) inst_name (port map);
  用#方法和port map的写法差不多
   module multiplier (a, b, product);
      parameter a_width = 8, b_width = 8;
      localparam product_width = a_width+b_width;
      input [a_width-1:0] a;
      input [b_width-1:0] b;
      output[product_width-1:0]product;
         generate
             if((a_width < 8) || (b_width < 8))
                 CLA_multiplier #(a_width, b_width) u1 (a, b, product);
             else
                  WALLACE_multiplier #(a_width, b_width)  u1 (a, b, product);
         endgenerate
   endmodule

1、概述

`define:作用 -> 常用于定义常量可以跨模块、跨文件;

                        范围 -> 整个工程;

parameter:     作用 -> 常用于模块间参数传递;

                       范围 -> 本module内有效的定义;

localparam       作用 -> 常用于状态机的参数定义;

                       范围 -> 本module内有效的定义,不可用于参数传递;

                                  localparam cannot be used within the module port parameter list.

2、应用举例

(1) define 概念:可以跨模块的定义,写在模块名称上面,在整个设计工程都有效。 一旦define指令被编译,其在整个编译过程中都有效。例如,通
过另一个文件中的define指令,定义的常量可以被其他文件调用, 直到遇到undef;
举例:定义 define UART_CNT 10'd1024 使用UART_CNT
需要特别注意的是:在利用`define做算数运算的时候,一定要加上括号,如下例子所示:

`define timeslice 100
module .....
......
# (2*`timeslice)    //这个是要加上括号的,如果写成# 2*`timeslice编译时是不会通过的;        

(2) parameter
概念:本module内有效的定义,可用于参数传递;
如果在模块内部定义时无法进行参数传递,
若在模块名后照下面这样写则可以进行传递

相关文章

  • 带有parameter的模块端口调用

    如果是带有的参数不需要本模块以外的部分修改,则调用模块时不需要考虑参数;如果我们希望能够在本模块以外修改参数,则参...

  • 模块调用端口的连接规则

    在verilog中,所有的端口隐含地声明wire类型;如果输出类型的端口需要保存数值,则必须将其显式地声明为reg...

  • 任务进度

    任务一、DEMO编写 1完成端口原始库开发 2完成端口模块调用开发 3缓存服务器 4看门狗 5ocx控件 发送和接...

  • Node 中的fs模块结合http模块一起使用

    使用http调用fs模块 在命令行中启动 带有上述代码的server.js文件,同时使用localhost:808...

  • rabbit-socket容器创建及使用

    启容器rabbit 5672是java调用的端口 15674是js调用的端口 访问localhost:8...

  • 单词本

    verify 验证linearity 线性度parameter 参数module 模块sharpness 清晰度r...

  • python-time模块、sys模块、os模块以及大量实例

    模块 通俗的说模块就把一个已经写好的带有可使用的函数的文件,通过文件名进行导入,然后调用里面的函数等来完成所需功能...

  • CVE-2017-16995 ubuntu16.04

    该漏洞存在于Linux内核带有的eBPF bpf(2)系统调用中,当用户提供恶意BPF程序使eBPF验证器模块产生...

  • 8.21成长笔记

    一、工作 1.了解脚本模块和调用程序模块的作用,对当前的调用模块做了适配,去适应新的脚本调用方式。 新的脚本调用方...

  • day9作业

    模块名字homework 调用模块

网友评论

      本文标题:带有parameter的模块端口调用

      本文链接:https://www.haomeiwen.com/subject/btxraxtx.html