hdlbits系列verilog解答(全加器)-26

文章目录

    • 一、问题描述
    • 二、verilog源码
    • 三、仿真结果


一、问题描述

在本练习中,您将创建一个具有两个层次结构级别的线路。您将 top_module 实例化(提供)的两个 add16 副本,每个副本将实例化 16 个副本 add1 。因此,您必须编写两个模块: top_module 和 add1 。

与module_add一样,您将获得一个执行 16 位加法的模块 add16 。您必须实例化其中两个才能创建 32 位加法器。一个 add16 模块计算加法结果的低 16 位,而第二个 add16 模块计算结果的高16 位。您的 32 位加法器不需要处理 carry-in(假设 0)或 carry-out(忽略)。

如下图所示将 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 );

回想一下,全加法器计算 a+b+cin

你可能感兴趣的:(verilog语言,fpga开发)