Categories
Status Updates

Week of 4/13 for Sarah Pelosi

Goals for this week:

  • Complete implementation of the BRAM to VGA display
  • Write top interface for project
  • Begin integration with calculations
  • Try polyphonic audio output

 

Progress:

  • Completed implementation for VGA display and included rotated picture and frame
  • Partially coded top interface for project, a finite state machine that will control the flow of the design (user input, calculations, original display, rotated display, and then playing music)
  • Researched and tried polyphonic audio output with very mixed results

Current Challenges:

  • We are beginning integration today, and I am hopeful that we can complete and test this without any timing errors. I suspect though that we will have to spend some time fixing these issues, so I am factoring that into the amount of time we spend on testing and editing other portions of the design.
  • I spent a lot of time this week researching how to create a polyphonic audio output using PWD on one audio channel, but the code resources I’ve found tend to only be for Arduinos and are not very informative. I tested something similar to multiplexing, but I did not get good results. I also had to adapt the C code we used in lab originally to create audio output. I will spend one more day on polyphonic audio, but if I am not successful, we may revert back to using multiple speakers at once in order to complete the project on time.

Plans for next week:

  • Complete integration of calculations with the display
  • Complete audio output
  • Fine-tune final design
  • Create design expo project poster and finish final website
Categories
Status Updates

Week of 4/13 for Danny Mathieson

Goals for the Week:

  • Integrate the final automation calculation with writing to BRAM storage for output to a monitor through VGA
  • Begin working with multiple Pmod amplifiers
  • Presentation

Progress:

  • Calculation hardware is finished
  • Integrations has begun, but isn’t as far as we would like it to be at this point
    • We gave ourselves an extra week just in case we fell a little behind like this so we are not worried about the deadline
  • We have previous experience with the Pmod amplifiers, and have an idea on how we could use multiple amps at the same time
    • This would involve multiplexing the output between which amp we want to use and when
  • We have finished researching which automation rules have which properties, and once integration is complete we can see which rules provide interesting visual and audio effects

Current Challenges:

  • There are some bugs in integration between the final calculation and writing the final values to the BRAM
    • Not too worried here because we have dealt with similar problems before.  This just takes time
  • Calculation Speed
    • I thought that I would be able to increase the speed tremendously by working with hardware instead of my original software implementation, but it isn’t really that much faster.  I will continue to try to improve this once we have a working design
  • Playing multiple Pmod notes at the same time
    • This is the difficult challenge and will take most of my time in the coming week

Goals For Next Week:

  • Work out the bugs we are currently experiencing in integration
  • Work with multiple Pmod setup
  • Website – For expo
    • Post pages on interesting rule algorithms in cellular automation
    • Post design strategy page
    • Work on overall aesthetic design
  • (If Time) Improve calculation speed

 

 

Categories
Status Updates

Week of 4/6 for Sarah Pelosi

Goals for the week:

  • Coordinate mid-project presentation
  • Complete implementation of the VGA display including rotation
  • Begin working on top interface

Progress:

  • The BRAM and VGA display code are functioning to display both the original pattern (for now we are working with a 16×16 grid) and the rotated pattern. I am still working on the final display which will include a grid around the pattern correctly sized after the change in pixel size orientation (1280 vs. 720).
  • I did research into playing multiple tones on the same speaker using some pulse width modulation.

Current challenges:

  •  The major current challenge is figuring out how to multiplex the speakers well enough to play two or more tones on a speaker at the same time. There is some guidelines, especially on Arduinos, but there is not a lot of documentation, and I have yet to test any of it.

Plans for next week:

  • Complete implementation of all the VGA display including the frame and sizing.
  • Setting up the top interface which will control when the VGA is displaying the original pattern, the rotated pattern, and when the music will begin playing.
  • Begin integration with Danny with the calculations.
  • Try and test the polyphonic audio output. If it is not successful, we will move on to using multiple speakers to create multiple tones at once.
Categories
Status Updates

Week of 4/6 for Danny Mathieson

Goals for the Week:

  • Finish Cellular Automation Hardware design in Verilog
  • Create mid-project presentation

Progress:

  • I still have not finished the hardware for automation
    • Calculating border conditions in hardware is much less trivial than doing so in software
    • Running the calculations in parallel is more difficult than what we did for the julia-set creation
  • The presentation will be finished shortly

Current Challenge:

  • Running a parallel calculation with multiple values that are subject to previous change is causing me the following problems:
    • Timing.  I am trying to optimize the amount of time needed for each generation to be computed by having hardware specific to each cell.
    • Hardware usage.  I am using specific hardware for each cell, and each cell also has 2 flip-flops per cell.  Also, because cells all depend on the previous values of other cells, wires between previous flip flop values are required as well.
  • I don’t see these as huge problems, but I will bring them up in our presentation tomorrow to get ideas from the rest of the class on how to solve them

Plan for next week:

  • Finish the hardware implementation by Wednesday.
  • Begin implementing with Sarah’s BRAM on Wednesday, and begin displaying the output of the cellular automation via VGA
  • Spend the weekend debugging my calculation implementation in hardware
    • I won’t be able to debug except for synthesize errors because I won’t be able to see the output until then
Categories
Status Updates

Week of 3/30 for Sarah Pelosi

Goals for week:

  • Implement and integrate BRAM and VGA display

Progress:

  • Implemented BRAM and VGA separately, displaying black and white pixels on the external monitor
  • Testing implementation of reading data from BRAM for each cell, which encompasses multiple pixels
  • Began implementation of creating frame around 90 degree rotation of fractal slice

Current Challenge:

  • I had a little bit of trouble assigning each calculated cell saved in BRAM to all of the pixels that represent it on the VGA display. I’m writing the test program for this currently, but I am hopeful that once this is complete, it will translate easily to choosing a slice of the fractal and turning it by 90 degrees on the display.

Plans for next week:

  • Complete all implementation of the BRAM and VGA including the 90 degree rotation display
  • Begin integration of the BRAM with Danny’s calculations
  • Start implementation of the top interface
Categories
Status Updates

Week of 3/30 for Danny Mathieson

Quick Note: Hopefully this ends up in the right places…

Goals for the week:

  • Start working on creating a cellular automation creator with a  preset starting state.
  • Possibly begin BRAM integration

Progress:

  • I didn’t know how I was going to test it with a hardware implementation, so I implemented the automation in C
  • I didn’t get the results that I expected, but this is fine as the hardware version will be easier to implement due to the case sensitive nature of the the calculations
  • Hardware implementation has begun as well, but I am not very far into it.

Current Challenge:

  • I am not 100% sure still that the way that I am calculating the values for each cell is entirely correct.
    • This is because none of the research that I have done supports whether every cell is computed one after the other with a newly changed cell affecting the cell to its immediate right, or if all of the cells are to be computed in parallel (much like a hardware system would do anyway) using the states of the previous cell to its immediate left.
    • Border conditions are also troublesome to compute, but with the way that I am computing them (using only itself and its only neighboring cell) This computation is going quite smoothly
  • It will take further testing to confirm whehter my calculations are being done correctly, but these can be minor fixes during implementation in the coming weeks.

Plan for next week:

  • Finish hardware implementation of calculations and have it program the board without errors
  • If time allows, coordinate with Sarah and begin integration of the BRAM parts and the automation, hopefully resulting with a finished cellular automation through VGA displayed on a monitor