Question: Here is my code, attached are images of the error codes I am getting. The first error corresponds to the variable screenshot and the second
Here is my code, attached are images of the error codes I am getting. The first error corresponds to the variable screenshot and the second error is in the IF statement.
SUBDESIGN miniproject
clk resetn SW SW KEY KEY KEY KEY : INPUT; Inputs
HEX HEX HEX HEX : OUTPUT; segment display outputs
LEDR LEDR LEDR LEDR : OUTPUT LED outputs
VARIABLE
balance : UNSIGNED; Account balance, bit
nextbalance : UNSIGNED; Next state balance value
state : UNSIGNED; State machine variable
countdowntimer : UNSIGNED; Countdown timer
seccount : UNSIGNED; Counter for Hz clock
clkhz : NODE; Hz clock signal
BEGIN
RESET ;
IDLE ;
DEPOSIT ;
WITHDRAW ;
MAXBALANCE ;
ONESECCOUNT ;
Clock divider to generate Hz clock
seccount.CLK clk;
IF resetn GND THEN
seccount ;
ELSE
IF seccount ONESECCOUNT THEN
seccount ;
ELSE
seccount seccount ;
END IF;
END IF;
clkhz seccount ONESECCOUNT ;
State Machine Logic
state.CLK clk;
CASE state IS
WHEN RESET
nextbalance :;
IF resetn VCC THEN
state : IDLE;
END IF;
WHEN IDLE
IF SW VCC THEN
state : DEPOSIT;
ELSIF SW VCC THEN
state : WITHDRAW;
END IF;
WHEN DEPOSIT
IF KEY GND AND balance MAXBALANCE THEN
nextbalance : balance ; Deposit $
ELSIF KEY GND AND balance MAXBALANCE THEN
nextbalance : balance ; Deposit $
ELSIF KEY GND AND balance MAXBALANCE THEN
nextbalance : balance ; Deposit $
END IF;
state : IDLE;
WHEN WITHDRAW
IF KEY GND AND balance THEN
nextbalance : balance ;
LEDR VCC; Withdraw $ turn on LEDR
ELSIF KEY GND AND balance THEN
nextbalance : balance ;
LEDR VCC; Withdraw $ turn on LEDR
ELSIF KEY GND AND balance THEN
nextbalance : balance ;
LEDR VCC; Withdraw $ turn on LEDR
ELSIF KEY GND AND balance OR
KEY GND AND balance OR
KEY GND AND balance THEN
LEDR VCC; Insufficient funds, turn on LEDR
END IF;
state : IDLE;
END CASE;
balance : nextbalance;
Countdown timer for seconds
countdowntimer.CLK clkhz;
IF resetn GND THEN
countdowntimer :;
ELSIF state WITHDRAW AND countdowntimer THEN
countdowntimer : countdowntimer ;
END IF;
Countdown display on HEX
WITH countdowntimer SELECT
HEXB WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN OTHERS;
Display on HEX and HEX based on balance
WITH balance SELECT
HEXB WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN OTHERS;
WITH balance SELECT
HEXB WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN
B WHEN OTHERS;
END miniproject; VARIABLE
balance : UNSIGNED;
nextbalance : UNSIGNED; Next state balance value
state : UNSIGNED; State machine variable
countdowntimer : UNSIGNED; Countdown timer
seccount : UNSIGNED; Counter for Hz clock
clklhz : NODE; Hz clock signal
Clock divider to generate Hz clock
seccount.CLK clk;
IF resetn GND THEN
seccount ;
ELSE
IF seccount ONESECCOUNT THEN
seccount ;
ELSE
seccount seccount ;
END IF;
END IF;
clk
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
