本文共 2479 字,大约阅读时间需要 8 分钟。
题目链接:
关系图
题目:本题要求使用 Verilog 语言描述一个模块,实现下图中与门。
解:图中in2输入信号需要取反。
&和&&的区别:&是逐位与,而&&是逻辑与。
关系图
题目链接:
异或门的输入输出可以概括为:(输入)相同(输出)为 0 ,不同为 1 。
关系图
题目:本题要求使用 Verilog 实现一个XNOR 门,如下图:
解:此处foo中间信号取反这里写中间信号是为了便于理解,实际编程中应该为assign out = (in1 ~^ in2) ^ in3;
以节约资源。
题目链接:
题目:完成下图中的电路。
解:由图中电路图可知,需要3个assign语句,2个中间信号。
为便于理解,可为:
module top_module( input x, input y, output z); wire z1, z2, z3, z4; A ia1 (x, y, z1); B ib1 (x, y, z2); A ia2 (x, y, z3); B ib2 (x, y, z4); assign z = (z1 | z2) ^ (z3 & z4);endmodulemodule A ( input x, input y, output z); assign z = (x ^ y) & x; endmodulemodule B ( input x, input y, output z); assign z = ~(x ^ y);endmodule
这里的A、B两个模块为之前的题目。
实现下图中表示的电路:
`default_nettype nonemodule top_module ( input a, input b, input c, input d, output out, output out_n); assign out = (a & b)| (c & d); assign out_n = (~a & b)| (c & d);endmodule
default_nettype none 是一个宏定义语句,这里是直接驱动。为便于理解代码可为:default_nettype none
module top_module( input a, input b, input c, input d, output out, output out_n ); wire and_1 = a & b; wire and_2 = c & d; wire or_1 = and_1 | and_2; assign out = or_1; assign out_n = ~or_1; endmodule 为什么没有说好的 4 个 assign 语句,因为在定义 3 个中间信号的同时,还给它们赋了值,这在 Verilog 语法中也是允许的。
题目链接:
实现下图中表示的电路:
解:本题要实现个稍稍复杂的电路:数电芯片 7458 。它有 10 个输入信号,2 个输出信号。你可以选择对每个输出信号,使用一个 assign 语句,也可以先产生第一级逻辑门输出的 4 个中间信号。有时间的话,两种方式都可以尝试下。
使用assign语句:module top_module ( input p1a, p1b, p1c, p1d, p1e, p1f, output p1y, input p2a, p2b, p2c, p2d, output p2y ); assign p1y = (p1a & p1b & p1c) | (p1d & p1e & p1f); assign p2y = (p2a & p2b) | (p2d & p2c);endmodule
题目链接:
实现下图电路,包含两个输入和一个输出(实现D触发器的功能)。实例化三个my_dff,然后将它们连接在一起,构成长度为3的移位寄存器。注意:clk端口需要连接到所有的寄存器实例上。
解:
题目链接:
实现下图电路:
解:给出了一个可以做16bit加法的模块add16,实例化两个add16以达到32bit加法的。一个add16模块计算结果的低16位,另一个add16模块在接收到第一个的进位后计算结果的高16位。此32bit加法器不需要处理输入进位(假设为0)和输出进位(无需进位),但为了内部模块为了结果的正确仍要处理进位信号。(换句话说,add16模块执行16bit的a+b+cin,而顶层模块执行32bit的a+b)。
题目链接:
ripple进位加法器的一个缺点(见前面的练习)是加法器计算进位的延迟(从进位开始,在最坏的情况下)相当慢,并且第二级加法器在第一级加法器完成之前不能开始计算其进位。这使加法器变慢。一个改进是进位选择加法器,如下所示
解:在本题中,您将获得与上一练习相同的模块add16,它将两个16bit数和进位输入相加,并产生16bit的结果和进位输出。您必须实例化其中的三add16来构建进位选择加法器,同时实现16bit的2选1选择器来选择结果。
转载地址:http://nwsoi.baihongyu.com/