Tesi Robotica Algoritmi ed architetture per la risoluzione di... | Page 135
135
wire go = ~KEY[1];
895
wire start;
wire [31:0] return_val;
wire finish;
reg [31:0] return_val_reg;
900
905
910
915
hex_digits
hex_digits
hex_digits
hex_digits
hex_digits
hex_digits
hex_digits
hex_digits
h7(
h6(
h5(
h4(
h3(
h2(
h1(
h0(
.x(return_val_reg[31:28]), .hex_LEDs(HEX7));
.x(return_val_reg[27:24]), .hex_LEDs(HEX6));
.x(return_val_reg[23:20]), .hex_LEDs(HEX5));
.x(return_val_reg[19:16]), .hex_LEDs(HEX4));
.x(return_val_reg[15:12]), .hex_LEDs(HEX3));
.x(return_val_reg[11:8]), .hex_LEDs(HEX2));
.x(return_val_reg[7:4]), .hex_LEDs(HEX1));
.x(return_val_reg[3:0]), .hex_LEDs(HEX0));
top top_inst (
.clk (clk),
.reset (reset),
.start (start),
.finish (finish),
.return_val (return_val)
);
parameter s_WAIT = 3’b001, s_START = 3’b010, s_EXE = 3’b011,
s_DONE = 3’b100;
920
// state registers
reg [3:0] y_Q, Y_D;
assign LEDG[3:0] = y_Q;
925
930
// next state
always @(*)
begin
case (y_Q)
s_WAIT: if (go) Y_D = s_START; else Y_D = y_Q;
s_START