Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
214 Views

How to use the SCLR port of a flip flop in VHDL?

Hi,

I am new in VHDL and the Quartus software. I was designing a simple flip flop circuit with synchronous clear by using sequential VHDL, but in the RTL schematic, it looks like it added a multiplexer to perform the synchronous clear task and didn't use the SCLR port of the flip flop. How can I add a synchronous clear without adding extra logic, please?
here is the code of the design and the RTL schematic.

library ieee;
use ieee.std_logic_1164.all;

entity ff_with_sclr is
port(d, clk, sclr: in std_logic;
	  q: out std_logic);
end ff_with_sclr;

architecture structure of ff_with_sclr is
signal qs: std_logic;
begin
process(clk)
begin
  if (rising_edge(clk)) then 
    if(sclr = '0') then 
      qs <= '0';
    else
      qs <= d;
    end if;
  end if;
end process;
q <= qs;
end structure;

quartus_UpfZc3xhao.jpg

0 Kudos
2 Replies
Highlighted
Moderator
203 Views

sclr is active high, so your if check should be if sclr = '1'.  Also, there's no need for the extra qs signal.  Just make the assignments to q in the process.

#iwork4intel

Highlighted
Beginner
197 Views

thank you for replying.

I changed the reset to be active high, but it still uses extra logic. the only difference is that the inputs of the multiplexers have flipped.

yes right, I too think there is no need for the qs signal here.

0 Kudos