2017-10-25 5 views
0

저는 2 모듈로 나눌 수 있고 3 모듈로 나눌 수있는 Verilog에서 6 모듈로 나눌 수있는 것을 만들고 싶습니다. 저는 그 아이디어를 파악했습니다.하지만 아마 내 Verilog 문법이 잘못되었을 수도 있습니다. Verilog을 6으로 나누는 방법을 구현하는 방법은 무엇입니까?

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 = f 그 외에.

어떻게하면 Verilog 언어로 아이디어를 구현할 수 있습니까?

감사합니다. 감사합니다.

입력 : 1 ~ 15

답변

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)).

0

입력이 divisible by 2divisible by 3 인 경우에만 얻을 수있는 divisible by 6 디자인이 필요합니다.

따라서 다음 코드와 같이 두 모듈을 모두 사용할 수 있습니다.

// 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);