Puzzle Task

Given the following SystemVerilog code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
module Puzzle (
    input logic clock,
    output logic Q1,
    output logic Q2
);

    initial begin
        Q1 = 0;
        Q2 = 0;
    end

    always_comb begin
        nextQ1 = ~Q1 | Q2;
        nextQ2 = ~(Q1 & Q2);
    end

    always_ff @ (posedge clock) begin
        Q1 <= nextQ1;
        Q2 <= nextQ2;
    end

endmodule

Part 1: Realization in CircuitVerse

Create a circuit in CircuitVerse that corresponds to this description. Note that the circuit is not uniquely determined by the SystemVerilog code; there are multiple possible realizations.

Part 2: Mathematical Description

Mathematically describe this module using equations for \(Q_1^{(n)}\) and \(Q_2^{(n)}\).

Part 3: Proof of the Impossibility of Certain States

Show that regardless of how the initial values of \(Q_1^{(0)}\) and \(Q_2^{(0)}\) are chosen, the states \(Q_1^{(n)}=0\) and \(Q_2^{(n)}=0\) for \(n > 0\) can never be reached.