Forum Discussion

LMelo2's avatar
LMelo2
Icon for New Contributor rankNew Contributor
3 years ago
Solved

"Force Use of Synchronous Clear Signals" assignment

Good morning. I need to force the position of a particular register on DDIOOUTCELL. The "Location -> DDIOOUTCELL_X34_Y18_N4" assignment works correctly. Also I need to use the SCLR, SLOAD and SDATA pins of that particular register. With the "Force Use of Synchronous Clear Signals" assignment I am able to reset the register, but I cannot find any assignment to force the synchronous LOAD. Can you help me?

regards, Luca

5 Replies

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    How are you coding this? It would be based on that.

    • LMelo2's avatar
      LMelo2
      Icon for New Contributor rankNew Contributor
      here is an example:
      I create in vhdl the model of the FF I need:

      DFF:process(clk_10M_int)is
      begin

      if rising_edge(clk_10M_int)then
      if(sclr='1')then
      Qdata<='0';
      elsif(sload='1')then
      Qdata<='1';
      else
      Qdata<=Ddata;
      end if;
      end if;

      end process DFF;

      then I fix the register position on a register (one of 2) outgoing DDRs with the following line in 
      the .qsf file:
      set_location_assignment DDIOOUTCELL_X34_Y10_N11 -to Qdata~reg0
      At this point Quartus creates the circuit of the 1st photo:



      then I always add this line in the .qsf file: 
      set_instance_assignment -name FORCE_SYNCH_CLEAR ON -to Qdata ~ reg0
      Now Quartus creates this circuit:



       
      So I can activate the synchronous reset of that register, 
      but I don't know how to activate the synchronous load
       
      Basically, Quartus uses combinatorial logic to create the "sync_load" function, as seen in this photo:

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    sload is used to set a value from a separate sdata input. You're just setting the output to 1 when this signal is enabled, which is not the intended behavior. If the device doesn't support this configuration (which seems to be the case) extra logic is added to give you the behavior you've defined.

    Maybe what you really want is an asynchronous preset, which would set the output to 1 whenever enabled.

    You should check the Design Recommendations user guide to see how to code for what you want:

    https://www.intel.com/content/www/us/en/support/programmable/support-resources/design-software/user-guides.html

    • LMelo2's avatar
      LMelo2
      Icon for New Contributor rankNew Contributor
      thank you very much for your time
  • I’m glad that your question has been addressed. With that, I will now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.


    Best Regards,

    Richard Tan


    p/s: If any answer from the community or Intel Support are helpful, please feel free to give best answer or rate 9/10 survey.