Combinational Logic I

The Basics

The questions below are due on Wednesday September 11, 2024; 11:59:00 PM.
 
You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

Consider the circuit below:

Mystery Logic Circuit. Note that if two lines cross, but there is no dot, there is no connection. Crossing wires with a dot indicate a connection.

Given the values of I_1, I_2,and I_3 are 0, 0, and 0, enter the values of O_1 and O_2 as a Python list.
(i.e. [O_1, O_2] ).

Given the values of I_1, I_2,and I_3 are 0, 0, and 1, enter the values of O_1 and O_2 as a Python list.
(i.e. [O_1, O_2] ).

Given the values of I_1, I_2,and I_3 are 1, 0, and 0, enter the values of O_1 and O_2 as a Python list.
(i.e. [O_1, O_2] ).

SystemVerilog

SystemVerilog as a language supports1 all standard logical operations, using C-style syntax, including AND (&&), OR (||), XOR (^) and NOT (!). Consider the very simple digital logic circuit below:

You can write this in two ways in SystemVerilog. The first using an assign statement:

assign c = a && b;

And alternatively as an always_comb. The pros/cons of these two ways will become apparent as you progress in the course.

always_comb begin
  c = a && b;
end

Implement the circuit at the top of the page in SystemVerilog.

Once you're done, move on to the next part of this week's assignments :D


 
Footnotes

1it damn well better (click to return to text)