我想用verilog中的6个模块进行整除,使用2个模块整除并可以被3个模块整除,我抓住了这个想法,但也许我的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,
并且两者都进入AND门,然后出现1。
1 =真,0 =假。
如何用verilog语言实现这个想法?
感谢帮助,谢谢。
输入:1~15
答案 0 :(得分: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_2
和Divisible_3
都采用4位输入并返回布尔值(divisible(1)或not(0))。
答案 1 :(得分:0)
如果您的输入同时为divisible by 6
和divisible by 2
,则需要divisible 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);