FPGA Troubleshooting: Spartan 3E-1600 MicroBlaze Dev Board

  • Thread starter Thread starter eemichael83
  • Start date Start date
  • Tags Tags
    Fpga
Click For Summary

Discussion Overview

The discussion revolves around troubleshooting issues with programming a Spartan 3E-1600 MicroBlaze development board using the ISE WebPack 13.4 software. Participants explore the process of implementing a simple XOR function in Verilog and the unexpected size of the generated .bit file, which leads to unresponsive behavior on the board.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Experimental/applied

Main Points Raised

  • The original poster describes their process of creating a Verilog module for an XOR function and expresses confusion over the large size of the generated .bit file.
  • Some participants inquire about the visibility of the Xilinx device in the JTAG chain and suggest testing with sample programs that may have come with the board.
  • A participant confirms that they can see the FPGA and PROM devices in the JTAG chain but remains puzzled about the unresponsive behavior of the board.
  • One participant shares a response from Xilinx customer service stating that the .bit file size is consistent across designs for programming purposes, suggesting that the size may not be the issue.
  • Another participant reports a successful resolution after consulting with a representative from Digilent, who identified incorrect I/O assignments on the board as the source of the problem.

Areas of Agreement / Disagreement

Participants express uncertainty regarding the implications of the .bit file size, with conflicting information from customer service representatives. While one participant resolves their issue, the discussion highlights that multiple views on the problem remain unresolved for others.

Contextual Notes

There are limitations in the information provided by customer service, as responses vary and do not fully address the troubleshooting needs. Additionally, the original poster did not have access to sample programs that could aid in verifying board functionality.

eemichael83
Messages
13
Reaction score
1
I've recently purchased an FPGA development board from Digilent, particularly the Spartan 3E-1600 MicroBlaze development board. Back in school, we did some very basic VHDL development with Cypress WARP but ran as simulations. I wanted to expand on that and learn something that the industry uses (on something tangible), so I chose Xilinx FPGA's and Verilog HDL. Their current free development package is the ISE WebPack 13.4 which is what I'm trying to use. I've started with a very basic XOR function with two inputs and one output but it isn't working. For anyone familiar with this development package, my process has been the following:

1.Start a new project and select the 'Spartan-3E 1600E MicroBlaze Dev Board' option (the board I bought) in the Design Properties and hit Ok.
2.Then, add new 'Verilog Module' source.
3. Define the module with In0 and In1 Inputs, and Out0 Output (Direction for these set accordingly).
4. Add 'assign Out0 = In0 ^ In1;' line to the Verilog source (.v file) between module and endmodule.
5. Open PlanAhead and assign my Inputs to 'L13' and 'L14', Output to 'R14'. I also add pullup to the inputs and set output drive to 8. (verified by checking my .ucf file)
6. Run Synthesize - XST, Run Implement Design, then Run Generate Programming File (all check marks).
7. Check .bit file and it is 729KB.

I was told by Xilinx customer service that the .bit file shouldn't be this large but I cannot figure out why it is. The board I have has two PROM devices, each 4Mb so the .bit file for this simple XOR will not even fit on one PROM device. I tried programming the FPGA directly with this .bit file and got an unresponsive board and I also tried programming the PROM devices with the .bit file cascaded and programming the FPGA from the PROM, same result (no surprise there).

I would greatly appreciate any help that anyone might be able to provide me as I am stumped.
 
Engineering news on Phys.org
eemichael83 said:
I've recently purchased an FPGA development board from Digilent, particularly the Spartan 3E-1600 MicroBlaze development board. Back in school, we did some very basic VHDL development with Cypress WARP but ran as simulations. I wanted to expand on that and learn something that the industry uses (on something tangible), so I chose Xilinx FPGA's and Verilog HDL. Their current free development package is the ISE WebPack 13.4 which is what I'm trying to use. I've started with a very basic XOR function with two inputs and one output but it isn't working. For anyone familiar with this development package, my process has been the following:

1.Start a new project and select the 'Spartan-3E 1600E MicroBlaze Dev Board' option (the board I bought) in the Design Properties and hit Ok.
2.Then, add new 'Verilog Module' source.
3. Define the module with In0 and In1 Inputs, and Out0 Output (Direction for these set accordingly).
4. Add 'assign Out0 = In0 ^ In1;' line to the Verilog source (.v file) between module and endmodule.
5. Open PlanAhead and assign my Inputs to 'L13' and 'L14', Output to 'R14'. I also add pullup to the inputs and set output drive to 8. (verified by checking my .ucf file)
6. Run Synthesize - XST, Run Implement Design, then Run Generate Programming File (all check marks).
7. Check .bit file and it is 729KB.

I was told by Xilinx customer service that the .bit file shouldn't be this large but I cannot figure out why it is. The board I have has two PROM devices, each 4Mb so the .bit file for this simple XOR will not even fit on one PROM device. I tried programming the FPGA directly with this .bit file and got an unresponsive board and I also tried programming the PROM devices with the .bit file cascaded and programming the FPGA from the PROM, same result (no surprise there).

I would greatly appreciate any help that anyone might be able to provide me as I am stumped.

Do you see the Xilinx device in the JTAG chain correctly before you try to program anything? Do you have any sample programs or examples that came with the Development Board that you can try directly?
 
berkeman said:
Do you see the Xilinx device in the JTAG chain correctly before you try to program anything? Do you have any sample programs or examples that came with the Development Board that you can try directly?

Yes, I see the FPGA, both PROM's, and the CPLD on the board in the JTAG chain. The service rep told me that the reason my file is unresponsive on the FPGA is likely due to whatever reason my .bit file is so large, but I can't figure out why that is. The process is pretty straight forward so it's hard for me to imagine what I've done wrong.

BTW, no sample programs came with the board and I wasn't able to find any on their site either. It did ship with a 'test' program pre-programmed that counted up in base 10 on the LCD and counted up in binary on the LED's. This pre-programmed sample worked correctly on the board but I have no source for it.
 
Last edited:
In the most recent email to Xilinx (different service rep, the initial rep only responded to the first email and nothing further), they gave this response:

"A .bit file is actually always the same size dependent upon the board being targeted. This allows for the programming interface to transmit the same amount of information every time in the same manner. Your design does not require all of the used information but it does require the “padded” file to program properly."

So my .bit file may not actually be a problem, which contradicts what the last service rep told me. Unfortunately, these kinds of responses are all I get to my problem and nothing further. It seems once they respond to the initial email with something rather generic, they're done. I'm hoping it's not a problem with the board but I'm not really able to verify that since they don't seem to want to help me resolve my issue. I've even offered to record a quick video of the entire process (which would only be around 5 min), talk with them over the phone, etc. and they've even ignored these attempts to help them help me!
 
My troubles are no more thanks to Alec from Digilent! He took the time to go through the steps I outlined as what I had been doing and got the same result with the same board. After a little investigation he found that the silkscreen print for the I/O on the board was wrong for the output I was trying to assign. He found the correct assignment and I tried that out and it worked as expected!

BTW all other emails exchanged before were also with Digilent, not Xilinx.
 

Similar threads