Question: AHDL Code Errors I am getting these errors in my code and I have no idea where I went wrong: Error ( 2 8 7
AHDL Code Errors
I am getting these errors in my code and I have no idea where I went wrong:
Error : Text Design File syntax error: Text Design File contains where : was expected
Error : Text Design File syntax error: Text Design File contains where was expected
Error : Text Design File syntax error: Text Design File contains ELSIF where END was expected
Error : Text Design File syntax error: Text Design File contains ELSIF where END was expected
Error : Text Design File syntax error: Text Design File contains ELSIF where END was expected
Here is my code, any help would be appreciated:
SUBDESIGN miniproject
clk resetn SW SW KEY KEY KEY KEY : INPUT; Inputs
HEX HEX HEX HEXsegment 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;
balance.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 balance on segment displays HEXHEX
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;
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
