Misc. FAQ



Q: Once I've made a VHDL or FSM module, what is the best way to edit it?

A: Use the Hierarchy Push/Pop tool in the schematic editor. This will open editor for that module, loaded with the code/state machine automatically. Do your changes, update the macro and exit the editor - the changes will automatically be applied to your schematic (you may get warnings it you changed pins). I find that this is more convienient than opening the appropriate editor from the project manager and then opening the desired file, since usually I'm already in the schematic.
 

Q: Enabling not allowed outside wait?

A: Make the signal you are setting a registered signal instead of combinatorial
 

Q: Is there a complete Pin out for the xs40?

A: sort of: look at the board manuals (xs40) (XSTends) and this list from EE 183 at Stanford.
 

Q: Why does a connected (I checked) wire have no load?

A: Make sure the destination uses the input. For example, the input is in the signal list of a process() statement (in VHDL) or is used in a state machine (eg. as a transition condition). If it is a clock input, make sure you are specifying it that way (ie used in a if clk'event and clk = '0')
 

Q: Why did one of the components I've made used for a while suddenly disapears, and I can't re-make it?

A: I don't know. FIX: create new project. copy component code to new project, rename file and component to something new, then create the new one with the new name in the new project.
 

Q: Why did "operation fail" when I tried to create my component?

A: maybe not enough memory. Foundation uses lots of RAM, and also it has a memory leak, so after a while you may not have enough RAM to work properly. Check the messages on the main screen for "could not allocate memory" error messages (red) (they don't use a popup to tell you, it just kinda happens...)
 

Q: Why doesn't it do anything when I give keyboard input?

A1: Probably the wiring, connection (nets), state machine are broken. the keyboard input VHDL works.

A2: !!Make sure that reset is not raised!!

A3: Check the maping report for removed/optimized away logic - see it it is stuff you need (like your state machine).
 

Q: I want to see the implementation report that told what the errors were.

A: In project manager, on the right side go to the "reports" tab, and dbl-click on "Implementation Log File".
 

Q: What EXACT FPGA are we using?

A: Xilinx XC4010XL PC84CMM9949 (its a XC4000XL series/family). GXSTEST calls it a XC40-010XL PC84, it is called different variations all over the place. The important part is that it is a XC 4000XL (not XL+). Then get more specific (4010... PC84...)
 

Q: I got the source for a tutorial from the XESS book, but it does not work?

A: It is not implemented for the correct FPGA. To fix this, select "Project -> Clear Implementation Data" from the project manager menu. Now, re-implement, but before you click "run", be sure to select the correct chip from the dropdown at the top of the dialog. Then it --should-- work...
 

Q: Why does it asks for a license, and where do I get one?

A: If you are asked for a license, select "from file", and browse to the "<drive>:\Xilinx\Data" directory, and select the "license.dat" file. Check the "Save Settings" check box when prompted, so that (hopefully) it will remember where the file is and not ask you again...
 

Q: Why isn't my <VHDL|FSM> listed in the library symbols in the schematic editor?

A1: You need to "compile" both of these - in their respective editors select Project -> Create Macro from the menu. They need to compile without errors - you need to have gotten the message "Symbol 'mysymbol' successfully created" at the end of the process.
 

Q: How do you make a new version and keep the old one?

A1: on the versions tab in project manager, right click the project and select "create version". You can also create revsion underneath each version in the same way. WARNING: changes (ie to FSM, VHDL, schematic) affect all versions!!
 

Q: "Implement" does not use changes in proj.ufc (and/or errors w/ netlist)?

A: Delete the current implementation from the "versions" tab in the project manager.
 

Q: Why can't I use the D6 and D7 pins for parrallel port input (P32, P34)?

ERROR:OldMap:40 - Bad format for LOC constraint p22 on OPAD symbol "$I5/$1I63" (pad signal= S<2>). No such site for this device. This may also indicate

that a non-constrainable site (such as a VCC, GND, mode, configuration, or other special-purpose pin) has been used as a site name.

A1: These are forced to be I/O strobes for the parrallel port communication. You can't use them (exception, see A2).

A2: need to connect to them with "special" component MD0, MD2 so they can be used for I/O.
 

Q: How do I make an Intel HEX file to download into the external RAM?

A: intelhex.pdf (this is whitesheet direct form Intel.)
 

Q: Can I check the external RAM contents to see if my HEX file loaded properly?

Q: Can I get answers back out from external RAM?

A: use (at dos prompt):

xsload -upload <start_address> <dump_length> <dumpfile.hex> <4010XL.bit>

- start_address: first address to grab from
- dump_length: number of bytes to dump
- dumpfile.hex: the output file (intel HEX format)
- 4010XL.bit: any bit file for the FPGA being used (for us, the 4010)
you can use your project bit file - it is only needed so that xsload know what chip it is interfacing with.

eg:
xsload -upload 0 10 dump.hex midi.bit
gets data from address 0 through 9 (10 bytes), puts it in local file dump.hex.
 

Q: In the simulator, values on my bus (start ok, but then) go weird!

A: The simulator sometimes orders the bus lines in lexicographical order, so the lines are in the order (0,1,10,11,12,13,14,15,16,17,18,19,2,20,...). To fix this, select the bus. R-click and select bus->flatten. Drag-&-Drop the lines in the list to be a numerical order. The select all the lines, R-click and select bus->combine. If the numbers are still wierd, try selecting the bus and r-click, bus->change direction. This will reverse the order of the lines (swap MSB w/ LSB, and so on).

[Return to CMPUT 329 Lab Home Page]

Created by Paul Berube, 2001