Taken from 2015 midterm question 5. See also the first part of this question: mt2015_muxdff
Write the Verilog code for this sequential circuit (Submodules are ok, but the top-level must be named top_module). Assume that you are going to implement the circuit on the DE1-SoC board. Connect the R inputs to the SW switches, connect Clock to KEY[0], and L to KEY[1]. Connect the Q outputs to the red lights LEDR.
- module top_module (
- input [2:0] SW, // R
- input [1:0] KEY, // L and clk
- output [2:0] LEDR); // Q
- wire result;
- parts part1(KEY[0],KEY[1],SW[0],LEDR[2],LEDR[0]);
- parts part2(KEY[0],KEY[1],SW[1],LEDR[0],LEDR[1]);
- assign result=LEDR[2]^LEDR[1];
- parts part3(KEY[0],KEY[1],SW[2],result,LEDR[2]);
- endmodule
-
-
- module parts(
- input clk,
- input l,
- input r,
- input q1,
- output Q);
- wire d;
- assign d=l?r:q1;
- always@(posedge clk) begin
- Q<=d;
- end
- endmodule