| module multiclock_separate_and_latch( | |
| clock1, | |
| clock2, | |
| a_in, | |
| b_in, | |
| out | |
| ); | |
| // SIGNAL DECLARATIONS | |
| input clock1; | |
| input clock2; | |
| input [1:0] a_in; | |
| input [1:0] b_in; | |
| output [1:0] out; | |
| and_latch and_latch_zero( | |
| clock1, | |
| a_in[0], | |
| b_in[0], | |
| out[0] | |
| ); | |
| and_latch and_latch_one( | |
| clock2, | |
| a_in[1], | |
| b_in[1], | |
| out[1] | |
| ); | |
| endmodule | |
| module and_latch( | |
| clock, | |
| a_in, | |
| b_in, | |
| out | |
| ); | |
| // SIGNAL DECLARATIONS | |
| input clock; | |
| input a_in; | |
| input b_in; | |
| output out; | |
| // ASSIGN STATEMENTS | |
| always @(posedge clock) | |
| begin | |
| out <= a_in & b_in; | |
| end | |
| endmodule |