HDLBits->Circuits->Arithmetic Circuitd->3-bit binary adder
Verilog实例数组
对于一个定义好的简单module,例如加法器之类,如果我们要对其进行几十次几百次的例化,并且这些例化基本都是相同的形式,那么我们肯定不能一个个的单独对其进行例化,此时我们就可以使用一种例化数组的方式进行快速的例化。
举个例子,如果我们要实现的功能如下:
    Now that you know how to build a full adder, make 3 instances of it to create a 3-bit binary ripple-carry adder. The adder adds two 3-bit numbers and a carry-in to produce a 3-bit sum and carry out. To encourage you to actually instantiate full adders, also output the carry-out from each full adder in the ripple-carry adder. cout[2] is the final carry-out from the last full adder, and is the carry-out you usually see.
给出的端口定义如下
module Adder3(
    input [2:0] a, b,
    input cin,
    output [2:0] cout,
    output [2:0] sum );
那么我们可以先定义一个一位带进位的加法模块
module Adder1(
    input a, b, cin,
    output cout, sum );
    assign {cout,sum} = a + b + cin;
endmodule
然后使用实例化数组语法
module Adder3(
    input [2:0] a, b,
    input cin,
    output [2:0] cout,
    output [2:0] sum );
    Adder1 Adder1[2:0](//将我们例化的模块写成一个一位加法器的三倍位宽
        .a(a),//每一个端口的位宽都是原来一位加法器的三倍位宽
        .b(b),
        .cin({cout[1:0],cin}),
        .cout(cout),
        .sum(sum)
    );
上面这段例化实际是例化了三个add模块,名字分别为 add_3[0], add_3[1], add_3[2];
从原理图我们就可以看出确实是例化了三个Adder1模块.

HDLBits->Circuits->Arithmetic Circuitd->3-bit binary adder的更多相关文章
- Chrysler  -- CCD (Chrysler Collision Detection) Data Bus
		
http://articles.mopar1973man.com/general-cummins/34-engine-system/81-ccd-data-bus CCD (Chrysler Coll ...
 - CRC 概述
		
Acquired from: ftp.adelaide.edu.au:/pub/rocksoft/crc_v3.txt or ftp://ftp.rocksoft.com/papers/crc_v3. ...
 - Common operators to overload-c++运算符重载的标准语法(全)
		
Common operators to overload Most of the work in overloading operators is boiler-plate code. That is ...
 - SpringBoot系列之集成Thymeleaf用法手册
		
目录 1.模板引擎 2.Thymeleaf简介 2.1).Thymeleaf定义 2.2).适用模板 3.重要知识点 3.1).th:text和th:utext 3.2).标准表达式 3.3).Thy ...
 - springboot web项目创建及自动配置分析(thymeleaf+flyway)
		
@ 目录 源码分析 webjars thymeleaf thymeleaf语法 springmvc 启动配置原理 集成flyway插件 springboot 创建web项目只需要引入对应的web-st ...
 - 微服务架构Day03-SpringBoot之web开发配置
		
概述 SpringBoot开发: 1.创建SpringBoot应用,选中需要的场景模块. 2.SpringBoot已经默认将场景模块配置好,只需要在配置文件中指定少量的配置(数据库地址,用户名,密码) ...
 - IEEE Standard 754 for Binary Floating-Point Arithmetic
		
IEEE 754-2008 - IEEE Standard for Floating-Point Arithmetic https://standards.ieee.org/standard/754- ...
 - [swarthmore cs75] Compiler 1 – Adder
		
课程回顾 Swarthmore学院16年开的编译系统课,总共10次大作业.本随笔记录了相关的课堂笔记以及第3次大作业. 编译的过程:首先解析(parse)源代码,然后成抽象语法树(AST),再生成汇编 ...
 - Binary Prefix Divisible By 5 LT1018
		
Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a bi ...
 
随机推荐
- Flutter 打印日志封装及创建Live Templates快捷打印日志
			
只需要输入logi 就可出现以下代码 /// tag(类名.函数名)LogUtil.i(index, tag: '_MyHomePageState.onItemClick:');打印日志效果如下: 实 ...
 - DRF JWT认证(一)
			
为什么要使用JWT认证?构成和原理又是什么?怎么还有Base64的事?我都写了
 - 使用 Prometheus Alertmanager 模块发送 Doris 异常信息至钉钉报警群
			
基础环境 1.Prometheus 版本:2.22.2 下载地址: https://github.com/prometheus/prometheus/releases/download/v2.22.2 ...
 - netty系列之:netty中的核心编码器bytes数组
			
目录 简介 byte是什么 netty中的byte数组的工具类 netty中byte的编码器 总结 简介 我们知道netty中数据传输的核心是ByteBuf,ByteBuf提供了多种数据读写的方法,包 ...
 - XCTF练习题---WEB---baby_web
			
XCTF练习题---WEB---baby_web flag:flag{very_baby_web} 解题步骤: 1.观察题目,打开场景 2.观察题目内容,想想初始页面是哪个,再看看URL,尝试输入in ...
 - [AcWing 798] 差分矩阵
			
点击查看代码 #include<iostream> using namespace std; const int N = 1e3 + 10; int a[N][N], b[N][N]; v ...
 - 用浏览器快速开启Docker的体验之旅
			
互联网科技发展创造了很多奇迹,比如我今天要提到的 docker 技术就是其一.我很早就关注它(在2015年写过这方面的博客),那会儿还只是一个开源项目,现在已经是一个行业事实标准了,它推动了云原生的变 ...
 - 一起看 I/O | Flutter 3 正式发布!
			
作者 / Tim Sneath, Google Flutter 和 Dart 产品组产品经理 Flutter 3 实现了 Flutter 以移动端为中心扩展到多平台的产品规划,并在今年 I/O 大会的 ...
 - 什么叫做 SSO
			
什么叫做 SSO 本文写于 2020 年 12 月 8 日 SSO 的全称叫做 Single Sign On,意味「单点登录」. 何为单点登录?就是你希望自己的两个网站,可以做到:一个网站登录了,另一 ...
 - FinClip 前端之 VUE 核心原理总结
			
小程序框架有很多,都是支持前端JavaScript语言的,也是支持 vue.js 框架的.FinClip 小程序是兼容各家平台的.所以在学习了框架使用之后的进阶就要熟悉框架的底层原理. 1.数据响应式 ...