MPTSheff
Newbie level 3
- Joined
- Aug 14, 2013
- Messages
- 4
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1
- Activity points
- 47
I'm trying to activate various LED patterns on the Spartan 3E starter kit by sending a signal from the connected PC. I've implemented the example from https://www.fpga4fun.com/SerialInterface.html along with a constraints file I wrote from the information in the user guide (below).
Using Hyperterminal I can activate various LEDs through keystrokes, and sending data-files of 0s and 1s also activates the LED. It appears that only the last number in the file produces any result eg. transferring a file containing 01111111 produces the same output as entering "1" in the hyperterminal.
Clearly, I do not understand what output I should expect (I had assumed the output would be the LEDs displaying my transferred bit-pattern). I wondered whether the other bits in the file were being accessed/displayed too quickly for me to perceive? Are there any further tutorials/examples I might build upon?
My desired result is that a file containing a series of patterns like the earlier example, be processed by the FPGA displaying each pattern in turn. Presumably I would also need to include some kind of delay to stop this occurring to rapidly.
Code:
# ==== Clock Source ====
NET "clk" LOC = "C9" | IOSTANDARD = LVCMOS33;
NET "clk" PERIOD = 5ns HIGH 40%;
# ==== Discrete GPout (LED) ====
NET "GPout<0>" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<1>" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<2>" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<6>" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "GPout<7>" LOC = "F9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
# ==== DTE ====
NET "RxD" LOC = "U8" | IOSTANDARD = LVTTL ;
NET "TxD" LOC = "M13" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = SLOW ;
Using Hyperterminal I can activate various LEDs through keystrokes, and sending data-files of 0s and 1s also activates the LED. It appears that only the last number in the file produces any result eg. transferring a file containing 01111111 produces the same output as entering "1" in the hyperterminal.
Clearly, I do not understand what output I should expect (I had assumed the output would be the LEDs displaying my transferred bit-pattern). I wondered whether the other bits in the file were being accessed/displayed too quickly for me to perceive? Are there any further tutorials/examples I might build upon?
My desired result is that a file containing a series of patterns like the earlier example, be processed by the FPGA displaying each pattern in turn. Presumably I would also need to include some kind of delay to stop this occurring to rapidly.