【问题标题】:how to implement verilog divisible by 6?如何实现被6整除的verilog?
【发布时间】:2017-10-27 13:52:54
【问题描述】:

我想在verilog中使用可被2除和3除的模块创建可被6整除的模块,我掌握了这个想法,但也许我的verilog语法是错误的。

我要实现的模块结构如下,

module Divisible_6(input [3:0] a, output out);

使用

module Divisible_2(
input [3:0] a,
output out
);

module Divisible_3(
input [3:0] a,
output out
);

如果输入为 6(0110),则 divisible_2 和 divisible_3 都输出 1,

两个 1 都进入 AND 门,然后出来 1。

1 = 真,0 = 假。

如何用verilog语言实现这个想法?

感谢您的帮助,谢谢。

输入:1~15

【问题讨论】:

    标签: verilog


    【解决方案1】:

    由于我理解的问题与@Morgan 有点不同,我宁愿试试这个代码:

    module Divisible_6(
      input [3:0] a,    
      output out
    );
    
      wire out_1, out_2;
    
      assign out = out_1 & out_2;
    
      Divisible_2(
        .a  (a),
        .out(out_1)
      );
    
      Divisible_3(
        .a  (a),
        .out(out_2)
      );
    
    endmodule
    

    我假设 Divisible_2Divisible_3 都采用 4 位输入并返回布尔值(可除 (1) 或不可除 (0))。

    【讨论】:

      【解决方案2】:

      你需要divisible by 6设计,只有当你的输入同时是divisible by 2divisible by 3时才能获得。

      因此您可以同时使用这两个模块,如以下代码。

      // Defining the nets
      logic out1, out2;
      
      // Continuous Assignment
      assign out = out1 & out2;
      
      // Instantiation of 2 modules with instance name d1 & d2
      divisible_2 d1 (a, out1);
      divisible_3 d2 (a, out2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-02
        • 2013-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多