FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
Announcements
All support for Intel NUC 7 - 13 systems has transitioned to ASUS. Read latest update.

Case?

Altera_Forum
Honored Contributor II
907 Views

Can anyone help me shorten this if into a case ? 

Is it smart? 

-- Signaltap end PROCESS (CLOCK_50, KEY(0), KEY(1)) BEGIN IF (CLOCK_50'EVENT AND CLOCK_50 = '1') THEN -- Trigger Condition IF KEY(0) = '0' AND KEY(1) = '0' THEN q <= q; ELSE IF KEY(0) = '1' AND KEY(1) = '0' THEN q <= '1'; -- Set ELSE IF KEY(0) = '0' AND KEY(1) = '1' THEN q <= '0'; -- Reset END IF; END IF; END IF; END IF; END PROCESS;
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
189 Views

PROCESS (CLOCK_50)  

BEGIN  

IF (CLOCK_50'EVENT AND CLOCK_50 = '1') THEN -- Trigger Condition  

IF KEY(0) = '1' AND KEY(1) = '0' THEN  

q <= '1'; -- Set  

ELSIF KEY(0) = '0' AND KEY(1) = '1' THEN  

q <= '0'; -- Reset  

ELSE 

null; 

END IF;  

END IF;  

END PROCESS;
0 Kudos
Altera_Forum
Honored Contributor II
189 Views

 

--- Quote Start ---  

Can anyone help me shorten this if into a case ? 

--- Quote End ---  

 

PROCESS (CLOCK_50) -- Key() should not be in the list , KEY(0), KEY(1)) variable KeyCode: natural range 0 to 3; BEGIN IF (CLOCK_50'EVENT AND CLOCK_50 = '1') THEN -- Trigger Condition -- Assuming that Key is a std_logic_vector and possibly longer than -- just two bits. KeyCode := to_integer(unsigned(Key(1 downto 0)); case KeyCode is when 1 => q <= '1'; -- Set when 2 => q <= '0'; -- Reset when others => null; end case; END IF; END PROCESS; 

 

--- Quote Start ---  

 

Is it smart? 

 

--- Quote End ---  

 

No it is not smart...people can be smart, but 'it' cannot. 

 

Kevin Jennings
0 Kudos
Reply