欢迎光临散文网 会员登陆 & 注册

HDLBits (10) — 7458芯片

2021-09-13 00:07 作者:僚机Wingplane  | 我要投稿

本题链接:

https://hdlbits.01xz.net/wiki/Wire_7458

7458 是具有四个与门和两个或门的芯片,它比 7420 稍微复杂一点。

创建一个与 7458 芯片功能相同的模块。 它有10个输入和2个输出。 您可以选择使用分配( assign )语句来驱动每条输出线网,或者您可以选择声明4条线网用作中间信号,其中每条内部线网都由一个与门的输出驱动。 如需额外练习,请同时尝试两种方法。

预期的解决方案长度:大约 2-10 行。

模块声明:

module top_module ( 
    input p1a, p1b, p1c, p1d, p1e, p1f,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );

提示

您需要用一个值驱动两个信号(p1y 和 p2y)

题目

module top_module ( 
    input p1a, p1b, p1c, p1d, p1e, p1f,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );


endmodule

答案

module top_module ( 
    input p1a, p1b, p1c, p1d, p1e, p1f,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );
    wire g1, g2, g3, g4;
    assign g1 = p1a & p1b & p1c;
    assign g2 = p1d & p1e & p1f;
    assign g3 = p2a & p2b;
    assign g4 = p2c & p2d;
    assign p2y = g3 | g4;
    assign p1y = g1 | g2;
endmodule
module top_module ( 
    input p1a, p1b, p1c, p1d, p1e, p1f,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );
    assign p2y = (p2a & p2b) | (p2c & p2d);
    assign p1y = (p1a & p1b & p1c) | (p1d & p1e & p1f);
endmodule

输出波形




HDLBits (10) — 7458芯片的评论 (共 条)

分享到微博请遵守国家法律