CPerez10

Members
  • Content Count

    12
  • Joined

  • Last visited

Everything posted by CPerez10

  1. Didn't know those were pullup constrains, thanks for letting me know. Now the clock seems to tick regardless of whether I place the keyboard in though. And when I set the constraints to the values they should be for coding, it still doesn't work. Thoughts?
  2. I'm aware of the UCF constraint discrepancy, I mentioned that I used both the clocks in the clk/data pins to check both the clocks and ignore the data line (this way I could check both at once and cover my bases faster). If you notice, I have the correct values commented out. So this isn't the error.
  3. Took a look at the code. There's nothing there (or anywhere else) that indicates having to do anything in order to get the clock on the device going. In my latest attempt, I set the UCF file to include the clocks from both ports in the clock and data lines respectively (just to cover all my bases). I tried hooking up 3 different keyboards (all of which work and have various specs) to either side and looked at the clock. Not a blip. Here's a small snippet of the relevant code: begin clk_div_inst : clk_div port map( CLK_IN => clk, CLK_OUT => div_clk); process(div_clk, USB2_CLK
  4. Thanks for pointing out that I can use the Vivado simulator, I didn't think about it since I had to use ISE to run on the Spartan 6. Turns out my code just needed to wait for one more clock cycle for the output to route to the LEDs.
  5. I know this topic has been started before, but I wanted to program my own driver to communicate with the keyboard as a learning experience. Currently trying to get data from my USB keyboard or getting the clock going. I used this guide: http://www.burtonsys.com/ps2_chapweske.htm According to the guide, I simply need to leave the clock high for 50 microseconds. I've tried various permutations of manipulating the clock and data line on the rising/falling edge, but not a single blip that I haven't caused. I'm using waveforms to see if any of the lines move. Only my div clock does (10Khz
  6. Hey guys. Still in the noob state where I'm overlooking something simple, but I've tried searching quite a bit on the web to no avail on using the block RAM properly. I use the IP core generator to create a 32x64512 bit block RAM. I then created a simple example that should light my LEDs with the contents I recently wrote into the RAM. No lights light up. Here's the code: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity MainSPI is Port ( clk : in STD_LOGIC; led : out STD_LOGIC_VECTOR (7 downto 0)); end MainSPI; architecture Behavioral of MainSPI
  7. I looked up the reference manual and it seems that the QSPI flash provided is only for configuration of the FPGA. Is there any way to access it? I looked at the master UCF and couldn't find the pins for it.
  8. Went through the code. It does indeed work, thank you. This raises a few questions though. Are VHDL logic vectors stored as little endian, or just iterated backwards? And is there a book/website on timing with VHDL? The button synchronization needs a bit of an explanation.
  9. Oh, and it's standard polarity, 8 data bits, no parity, and 1 stop bit. Also, I noticed I left some artifacts from other attempts (int_tick and other commented division constant). Apologies.
  10. Title says it all. I've tried various baud rates. I've tried using the wizard to generate a clock that I then divide to see if it's more accurate. Right now, the latest attempt divides my 100MHz clock by 1k to get a clean 100k baud. I'm using the analog discovery 2 to spy on BB1 (first breadboard pin) on my Anvyl. My code waits for a button press to repeatedly send out a simple hard-coded message, which then resets on the button release. The LEDs are just for primitive version control (so I know what program is on the board). Here's the source for both the repeater and the clock divider: l
  11. I read on the Anvyl reference manual that the spartan 6 chip is capable of 500MHz clock speeds, but all the demos seem to be based off of 100MHz. Is this because it's using the on-board crystal oscillator, or is it because of the speed setting in the project properties?