Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SUBDESIGN 'lab4'
- (
- a, b, clock: INPUT;
- out[3..0]: OUTPUT;
- )
- VARIABLE
- state: MACHINE WITH STATES (s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15);
- BEGIN
- state.clk = clock;
- case state is
- when s0 =>
- out[] = B"0011";
- state = s1;
- when s1 =>
- out[] = B"1011";
- if (a==1) then
- state = s2;
- else
- state = s8;
- END if;
- when s2 =>
- out[] = B"1100";
- state = s3;
- when s3 =>
- out[] = B"0001";
- if (b==1) then
- state = s5;
- else
- state = s4;
- END if;
- when s4 =>
- out[] = B"1001";
- state = s6;
- when s5 =>
- out[] = B"0010";
- state = s6;
- when s6 =>
- out[] = B"1110";
- state = s7;
- when s7 =>
- out[] = B"1000";
- state = s13;
- when s8 =>
- out[] = B"0111";
- state = s9;
- when s9 =>
- out[] = B"0110";
- state = s10;
- when s10 =>
- out[] = B"0100";
- if (b==1) then
- state = s11;
- else
- state = s12;
- END if;
- when s11 =>
- out[] = B"1101";
- state = s7;
- when s12 =>
- out[] = B"1010";
- state = s7;
- when s13 =>
- out[] = B"1111";
- state = s14;
- when s14 =>
- out[] = B"0101";
- state = s15;
- when s15 =>
- out[] = B"0000";
- state = s0;
- when others =>
- state = s0;
- END case;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement