HDLBits——Modules:Hierarchy
Problem 19 : Modules
Requirement:
创建一个下级模块 mod_a,将其的三个端口 in1 ,in2 ,out 按照图中的连接方式,分别连接到顶层模块的 a ,b,out 端口上。
Problem 20: Connecting ports by position(Module pos)
Requirement:
给出了一个名为 mod_a 的模块,该模块按顺序具有 2 个输出和 4 个输入。将 6 个端口按位置顺序与顶层的端口 out1,out2,a,b,c 和 d 相连接。已知 module mod_a ( output, output, input, input, input, input );
Problem 21: Connecting ports by name(Module name)
Requirement:
给出了一个名为 mod_a 的模块,该模块按某种顺序具有 2 个输出和 4 个输入。将 6 个端口按名字与顶层的端口相连接。已知 module mod_a ( output out1, output out2, input in1, input in2, input in3, input in4);
Problem 22: Three modules(Module shift)
Requirement:
给出了一个名为 my_dff 的模块,包含两个输入和一个输出(实现D触发器的功能)。实例化三个 my_dff,然后将它们连接在一起,构成长度为 3 的移位寄存器。已知:module my_dff ( input clk, input d, output q );
Problem 23: Modules and vectors(Module shift8)
Requirement:
本题给出了一个名为 my_dff8 的模块,包含两个输入和一个输出(实现一个 8bit 的 D 触发器)。请实例化三个,并将它们连接在一起,形成一个长度为 3 的 8bit 移位寄存器。此外,再写出一个 4 选 1 多路复用器(未提供模块模型),根据输入的 sel[1:0] 选择要输出的内容:输入 D 的值,在第一个 D 触发器之后的值,第二个或第三个 D 触发器之后的值(可以说 sel 选择的是输入延迟的的周期数,0~3 个时钟周期不等)。
已知:module my_dff8 ( input clk, input [7:0] d, output [7:0] q );
Problem 24: Adder 1(Module add)
Requirement:
给出了一个可以做 16bit 加法的模块 add16,实例化两个 add16 以达到 32bit 加法。一个 add16 模块计算结果的低 16 位,另一个 add16 模块在接收到第一个的进位后计算结果的高 16 位。此 32bit 加法器不需要处理输入进位(假设为0)和输出进位(无需进位),但为了结果的正确仍要处理进位信 。也就是 add16 模块执行 16bit 的 a+b+cin,而顶层模块执行 32bit 的 a+b。
已知 16 bit 的模块声明为:
module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );
Problem 25: Adder 2(Module fadd)
Requirement:
在本题中,您将描述一个具有两级层次结构的电路。在 top_module 中,实例化两个 add16 模块,每个 add16 中实例化 16 个 add1 实例。与 Problem 24 一样,32 位加法器同样不需要处理进位输入(假设为0)和进位输出(无需进位)信 。
已知:module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );
总之,本题中一共有三个模块:
1、top_module:包含两个 16 位加法器的顶层模块;
2、add16(已给出):一个16bit的加法器,由16个全加器构成;
3、add(未给出):1bit全加器。
需要描述两个模块:top_module 和 add1。
小提示:全加器的逻辑表达式
Solution:
Timing Diagram:
Solution:
改进:二选一直接用问 冒 语句就行,还能用 wire 类型。
PS:这是选择进位加法器(CSA: Carry-Select Adder),相对于上一题的行波进位加法器(也叫逐级进位加法器,RCA: Ripple-Carry Adder)延迟小一半左右,但是比增多了50%的逻辑资源。
Timing Diagram:
当 sub 为 1 时,使用 32 位的异或门对 b 进行取反(这也可以被视为 b[31:0] 与 sub 复制 32 次相异或),同时 sub 信 连接到加法器的进位。
Solution:
PS:异或门也可以看作是可编程的非门,其中一个输入控制输出为另一个输入或是其反。以下两个电路都是异或门:
PS:还有好多题啊,俗话说的好,一口气吃不成一个胖子,继续加油哇!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!