Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ae3ceb0

Browse files
committed
CS450 solutions added
1 parent c36b43c commit ae3ceb0

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

‎6-CS450/180-Cs450-counter-2bc.v‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
module top_module(
2+
input clk,
3+
input areset,
4+
input train_valid,
5+
input train_taken,
6+
output [1:0] state
7+
);
8+
9+
//-------------Internal Constants-----------------
10+
parameter SNT=0, WNT=1, WT=2, ST=3 ; // states
11+
12+
//-------------Internal Variables-----------------
13+
reg [1:0] next_state; //2 state bits for 4 states.
14+
15+
// State transition logic - Combinational Logic
16+
always @(*) begin
17+
case(state)
18+
SNT : next_state = train_valid ? ( train_taken ? WNT : SNT ) : SNT ;
19+
WNT : next_state = train_valid ? ( train_taken ? WT : SNT ) : WNT ;
20+
WT : next_state = train_valid ? ( train_taken ? ST : WNT ) : WT ;
21+
ST : next_state = train_valid ? ( train_taken ? ST : WT ) : ST ;
22+
endcase
23+
end
24+
25+
always @(posedge clk, posedge areset) begin
26+
// State flip-flops with asynchronous reset
27+
if(areset)
28+
state <= WNT ;
29+
else
30+
state <= next_state;
31+
end
32+
33+
endmodule

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /