HDLBits(1)——Modules:Hierarchy(中)

简介: 目录HDLBits——Modules:Hierarchy问题19 Module将信息连接到端口By positionBy name问题20 Connecting ports by position(Module pos)问题21 Connecting ports by name(Module name)问题22 Three modules(Module shift)问题23 Modules and vectors(Module shift8)问题24 Adder 1(Module add)问题25 Adder 2(Module fadd)问题26 Carry-selec

问题24 Adder 1(Module add)

您将获得一个执行16位加法的模块add16。实例化其中两个以创建32位加法器。一个add16模块计算加法结果的低16位,而第二个add16模块在从第一个加法器接收进位后计算结果的高16位。您的32位加法器不需要处理进位(假设为0)或进位(忽略),但内部模块需要处理才能正常工作。(换句话说,add16模块执行16位a+b+cin,而您的模块执行32位a+b)。


如下图所示将模块连接在一起。提供的模块 add16 具有以下声明:

module add16(input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout);

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/a3998a0a74924f95b124ef6d2e63c827.png

module top_module(
    input [31:0] a,
    input [31:0] b,
    output [31:0] sum
);
    parameter z = 0;
    wire w;
    add16 add161(
        .a(a[15:0]),
        .b(b[15:0]),
        .cin(z),
        .cout(w),
        .sum(sum[15:0])
    );
    add16 add162(
        .a(a[31:16]),
        .b(b[31:16]),
        .cin(w),
        .sum(sum[31:16])
    );
endmodule

问题25 Adder 2(Module fadd)

在本练习中,您将创建具有两个层次结构的电路。您的 top_module 将实例化 add16 的两个副本(已提供),每个副本将实例化 add1 的 16 个副本(您必须编写)。


与module\u add一样,您也会得到一个执行16位加法的module add16。必须实例化其中的两个才能创建32位加法器。一个add16模块计算加法结果的低16位,而第二个add16模块计算结果的高16位。您的32位加法器不需要处理进位(假定为0)或进位(忽略)。


如下图所示将 add16 模块连接在一起。提供的模块 add16 具有以下声明:

module add16(input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout);

在每个 add16 中,实例化了 16 个全加器(模块 add1,未提供)以实际执行加法。您必须编写具有以下声明的完整加法器模块:

module add1( input a, input b, input cin, output sum, output cout );
• 1


总之,本题中一共有三个模块:

  1. top_module:包含两个 16 位加法器的顶层模块;
  2. add16(已给出):一个16bit的加法器,由16个全加器构成;

3.add(未给出):1bit全加器。

module top_module (
    input [31:0] a,
    input [31:0] b,
    output [31:0] sum
);//
    wire w;
    add16 add161(
        .a(a[15:0]),
        .b(b[15:0]),
        .cin(1'b0),
        .cout(w),
        .sum(sum[15:0])
    );
    add16 add162(
        .a(a[31:16]),
        .b(b[31:16]),
        .cin(w),
        .sum(sum[31:16])
    );
endmodule
module add1 ( input a, input b, input cin,   output sum, output cout );
    assign sum = a ^ b ^ cin;
    assign cout = (a & b) | (a&cin) | (b & cin);
endmodule

相关文章
|
网络协议 机器人 Python
关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'
关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'
关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'
|
7月前
|
JavaScript 前端开发
ES modules: A cartoon deep-dive
ES modules: A cartoon deep-dive
66 1
|
Python
spyder下报错ModuleNotFoundError: No module named
spyder下报错ModuleNotFoundError: No module named
429 0
codeforces 344B - Simple Molecules
题意就是给出3个原子的化学价,然后组成一个分子,要保证这个分子是稳定的,如果你还记得高中化学知识的话这个很容易理解,然后让你求出1-2 2-3 1-3 号原子之间有几条键, 这里我分别用ta tb tc 表示, 用数学的方法表示出来的话就是a = tc + tb; b = ta+tc; c = ta + tb;可能有多种情况,只要输出一种即可。
43 0
|
异构计算
ModuleNotFoundError: No module named ‘mmcv._ext‘
最近想将mmsegmentation打包成exe进行使用,但是遇到了一个问题,在打包的过程中不会显示报错信息,但是在执行exe程序之后,exe会出现ModuleNotFoundError: No module named 'mmcv._ext'的报错,导致软件崩溃。
1031 0
|
TensorFlow 算法框架/工具 Python
成功解决ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
成功解决ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
|
决策智能
运筹优化25:ModuleNotFoundError: No module named ‘docplex‘
运筹优化25:ModuleNotFoundError: No module named ‘docplex‘
运筹优化25:ModuleNotFoundError: No module named ‘docplex‘
|
机器学习/深度学习 算法 安全
解决ModuleNotFoundError: No module named ‘dlib‘问题-提供3.7x与3.9两个版本
解决ModuleNotFoundError: No module named ‘dlib‘问题-提供3.7x与3.9两个版本
1184 0
解决ModuleNotFoundError: No module named ‘dlib‘问题-提供3.7x与3.9两个版本
HDLBits(1)——Modules:Hierarchy(下)
目录 HDLBits——Modules:Hierarchy 问题19 Module 将信息连接到端口 By position By name 问题20 Connecting ports by position(Module pos) 问题21 Connecting ports by name(Module name) 问题22 Three modules(Module shift) 问题23 Modules and vectors(Module shift8) 问题24 Adder 1(Module add) 问题25 Adder 2(Module fadd) 问题26 Carry-selec
132 0
HDLBits(1)——Modules:Hierarchy(下)
HDLBits(1)——Modules:Hierarchy(上)
目录 HDLBits——Modules:Hierarchy 问题19 Module 将信息连接到端口 By position By name 问题20 Connecting ports by position(Module pos) 问题21 Connecting ports by name(Module name) 问题22 Three modules(Module shift) 问题23 Modules and vectors(Module shift8) 问题24 Adder 1(Module add) 问题25 Adder 2(Module fadd) 问题26 Carry-selec
202 0
HDLBits(1)——Modules:Hierarchy(上)