1

I have been developing an IP and it was working just fine until I used it in a project.

After that two of fpga's output pins didn't work at all ! After some investigations I just realized that, in design summary these two pins reported under reg(s), valued ''off''. I think that somehow these two pins switched off.

Can anyone tell me how can I switch a pin off and on, and what makes it behave that way?

These pins are doing a simple job just turning a led on and off and they are working fine when I am testing IP, and just in the bigger project switched off.

Image

Stoogy
  • 1,307
  • 3
  • 16
  • 34
Reflection
  • 399
  • 2
  • 11

1 Answers1

4

The "OFF" in Reg (s) column doesn't mean that pin is turned off.

It means that the IOB is configured to use "Output Flip Flop" :)

Other modes might include IFF, ODDR, ENFF, etc.

Vlad
  • 5,450
  • 1
  • 12
  • 19
  • how should i configure it to other modes? because pins doesn'twork at all. and what are the differencs between them? – Reflection Dec 06 '18 at 09:59
  • 1
    @Reflection you don't explicitly configure it. The logic that drives the pin dictates exact implementation that will be used. That column is not config, that is a report. If something doesn't work, simulate it first. Make sure that timing constraints aren't violated. Check pins assignment, etc. – Vlad Dec 06 '18 at 14:30
  • Thanks for your quick respond, as i said the code was working individually but when I have used it as a component only two pins behave this way! I didn't change anything include pin assignments! are you sure there is not anyway to force pins not using flip flop? those pins directly come from refrence module without any changes – Reflection Dec 06 '18 at 23:02
  • I have found source of the problem I was using INOUT in one of internal module! which caused all of the IOs stop working some how! Is there any way to use INOUT not at the top of the hierarchy ? – Reflection Dec 08 '18 at 12:01
  • 1
    @Reflection I don't think that using inout is giving you troubles. It's more likely that you broke the logic yourself, making some logical mistakes while trying to combine modules. – Vlad Dec 08 '18 at 21:21
  • it is driving me crazyyyyyyyyyyyy, i have read over the Internet that you cannot use inout inside fpga anymore and i have omit inout but it still doesn't work! i cannot find what is wrong with it !!!!!!!!!!!! – Reflection Dec 10 '18 at 12:12
  • @Reflection you'll have to show minimal example that breaks when you move one module with inout into another module. It's true that fpga can't have true z state inside, but it doesn't mean that the required logic can't be implemented. It just will be done as multiplexer, or some other primitive that would select which signal would drive the line. – Vlad Dec 10 '18 at 15:49
  • new updates, I may have found the reason! The source of problem was the specific pin that I was using! I have changed the pin and problem solved. Though, I did not understand why using that pin had this huge impact on the whole system! – Reflection Feb 01 '19 at 20:48