joesugar

Members
  • Posts

    9
  • Joined

  • Last visited

Profile Information

  • Gender
    Not Telling

joesugar's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Wow, this is exactly the thing I'm looking for for a project of mine. Looking forward to see how it progresses.
  2. I've been working this area on a Papilio One, mostly on the transmit side. So far I've put together an interface for a high speed D2A and have implemented an amateur radio PSK31 modulator. I'm currently working on an I/Q modulator using the CORDIC algorithm. The plan is to read IQ data from a Teensy via an I2S interface and have it function similar to a USRP but at lower bandwidth and frequencies. I've written up the PSK31 modulator at https://ceworkbench.wordpress.com/2014/06/01/a-pks31-beacon-in-an-fpga/and have a bunch of blocks in my githup repo at https://github.com/joesugar/DesignLabSketchBook. Drop me a note if you'd be interested in trading project ideas.
  3. Thanks Jack, I'll take a look at it. Joseph
  4. Hi guys, Anyone here ever do any work getting digital audio data into a Papilio? I'm working to create a waveform generator for amateur radio use using the Papilio One. The idea is to accept data from another computer in I/Q format and upconvert it in the FPGA to produce a signal in the 3 - 30 MHz range. Think a lower-frequency version of the GNU Radio USRP. I'm at the point where I need an interface to read in the I/Q data and am leaning toward creating a block that will impersonate the I2S interface of an audio codec. I'd be satisfied with a bandwidth of around 50 kHz (for now ) and I like how I2S explicitly identifies the right/left channels. However, I'm open to other ideas and thought I'd see if anyone here has done something similar before committing myself. Thanks for any suggestions, Joseph
  5. The quick answer is no. Signal assignments within a process are all done in parallel and for the case you've given, the assigned values are those that exist at the time of the clock edge. I_dataD takes two cycles to propagate to O_dataA because on the first rising edge of the clock I_dataD is latched into regs and O_dataA takes on the value that was in regs when the clock edge occurred. It isn't until the next clock edge (the second) that the original value of I_dataD is available in regs to be latched into O_dataA. Kind of like a bucket brigade.
  6. I've started converting some of the Wishbone cores I've written in the past for use as DesignLab libraries. So far I have a simple numerically controlled oscillator and am working on updating an interface for the WM8731 audio codec. As part of this, I put together a short explanation of the work flow I use to convert my Wishbone cores for use in DesignLab and posted it at https://ceworkbench.wordpress.com/2015/10/03/adapting-wishbone-cores-for-use-with-the-papilio-and-designlab/. (Sorry, no video.) I'd appreciate any comments or suggestions for improvements. Thanks, Joseph