<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://old.hacdc.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mml</id>
	<title>HacDC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://old.hacdc.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mml"/>
	<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php/Special:Contributions/Mml"/>
	<updated>2026-05-07T12:07:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshopMatt&amp;diff=2597</id>
		<title>FPGAWorkshopMatt</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshopMatt&amp;diff=2597"/>
		<updated>2009-12-10T02:20:47Z</updated>

		<summary type="html">&lt;p&gt;Mml: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve got a couple of ideas so far: &lt;br /&gt;
# WEP or WPA (or other hash/cipher) crack acceleration&lt;br /&gt;
#* In my dreams, I imagine a crack accelerator embedded in an autonomous robot that drives itself around cracking networks as it goes.&lt;br /&gt;
# non-von Neumann computer&lt;br /&gt;
#* E.g., the Reduceron, which is a machine that does something called graph reduction, a thing computationally equivalent to a Turing machine but which is better suited to pure functional languages like Haskell&lt;br /&gt;
#* see http://www.cs.york.ac.uk/fp/reduceron/&lt;br /&gt;
# SIP &amp;lt;-&amp;gt; analog telephone adapter&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshopMatt&amp;diff=2593</id>
		<title>FPGAWorkshopMatt</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshopMatt&amp;diff=2593"/>
		<updated>2009-12-10T02:06:41Z</updated>

		<summary type="html">&lt;p&gt;Mml: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve got a couple of ideas so far: &lt;br /&gt;
# WEP or WPA crack acceleration&lt;br /&gt;
#* In my dreams, I imagine a crack accelerator embedded in an autonomous robot that drives itself around cracking networks as it goes.&lt;br /&gt;
# non-von Neumann computer&lt;br /&gt;
#* E.g., the Reduceron, which is a machine that does something called graph reduction, a thing computationally equivalent to a Turing machine but which is better suited to pure functional languages like Haskell&lt;br /&gt;
#* see http://www.cs.york.ac.uk/fp/reduceron/&lt;br /&gt;
# SIP &amp;lt;-&amp;gt; analog telephone adapter&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshopMatt&amp;diff=2592</id>
		<title>FPGAWorkshopMatt</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshopMatt&amp;diff=2592"/>
		<updated>2009-12-10T02:00:55Z</updated>

		<summary type="html">&lt;p&gt;Mml: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve got a couple of ideas so far: &lt;br /&gt;
# WEP or WPA crack acceleration&lt;br /&gt;
#* In my dreams, I imagine a crack accelerator embedded in an autonomous robot that drives itself around cracking networks as it goes.&lt;br /&gt;
# non-von Neumann computer&lt;br /&gt;
#* E.g., the Reduceron, which is a machine that does something called graph reduction, a thing computationally equivalent to a Turing machine but which is better suited to pure functional languages like Haskell&lt;br /&gt;
#* see http://www.cs.york.ac.uk/fp/reduceron/&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2401</id>
		<title>FPGA Workshop</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2401"/>
		<updated>2009-10-29T00:24:51Z</updated>

		<summary type="html">&lt;p&gt;Mml: /* Spartan 3AN Starter Kit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Topics ==&lt;br /&gt;
1) Introduction to digital logic &amp;amp; design&amp;lt;br&amp;gt;&lt;br /&gt;
2) Verilog HDL modeling &amp;amp; testing&amp;lt;br&amp;gt;&lt;br /&gt;
3) FPGA&#039;s &amp;amp; using them.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
We will be taking an approach of reviewing &amp;amp; learning digital design, implementing designs and methods of formally simulating and verifying designs before moving into [http://en.wikipedia.org/wiki/Field-programmable_gate_array FPGA] oriented work.  This workshop will be more engineering oriented than hobbyist/tinkerer oriented.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
We&#039;ll be covering some FPGA specific topics and projects using real hardware.  The first half of the workshop will cover logic design, implementation and testing.  This will allow people to put off ordering any hardware until they know that they actually want to pursue FPGA development, since the dev board I&#039;ve chosen for this is not cheap but I feel is robust enough to be a good starting board for this group.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The hardware we&#039;ll be using is the Xilinx Spartan 3AN development kit. This kit is available from a few vendors for 199USD + shipping.  This will be discussed more later on.  The kit includes programming cable, and evaluation copies of some of the Xilinx tools.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Verilog Simulation and Waveform Viewing ===&lt;br /&gt;
Icarus verilog &amp;amp; gtkwave; for doing Verilog compilation, simulation and waveform viewing. A makefile has been made to simplify the flow for any exercises and projects we use these tools with.  That makefile can be found [[iverilogmakefile|&#039;&#039;&#039;here&#039;&#039;&#039;]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FPGA Toolchain ===&lt;br /&gt;
After we finish up with covering Verilog modeling, we&#039;ll move to the Xilinx ISE Webpack tools and actual work with FPGAs.  This software is available from Xilinx for free, and is available for Windows and Linux platforms.  This will be used for Verilog compilation, simulation, synthesis of designs, design mapping, place and routing of designs, bitstream generation and board programming.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Direct Installation (Ubuntu version) ===&lt;br /&gt;
&lt;br /&gt;
--- Gtkwave ---&lt;br /&gt;
&lt;br /&gt;
gtkwave is good in the Universe repository.  If you&#039;ve already got that linked in your /etc/apt/sources.list file, then installation is as simple as: &lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install gtkwave&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--- Compiling icarus verilog ---&lt;br /&gt;
&lt;br /&gt;
Icarus verilog, on the other hand, is buggy in the Jaunty repository.  So you&#039;ll want to compile it by hand.  &lt;br /&gt;
&lt;br /&gt;
* Fetch the .tar.gz file:  &lt;br /&gt;
&lt;br /&gt;
  wget ftp://ftp.icarus.com/pub/eda/verilog/snapshots/verilog-20090923.tar.gz&lt;br /&gt;
  tar xvzf verilog-20090923.tar.gz&lt;br /&gt;
  cd verilog-20090923&lt;br /&gt;
&lt;br /&gt;
* Make sure you have the necessary compile tools:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install build-essential flex bison g++&lt;br /&gt;
&lt;br /&gt;
* Compile and install:&lt;br /&gt;
&lt;br /&gt;
  ./configure &lt;br /&gt;
  make&lt;br /&gt;
  sudo make install   &lt;br /&gt;
&lt;br /&gt;
* Go get a cup of tea after you type &amp;quot;make&amp;quot;, because compiling takes a while.  But when you get back, you should be good to go.  Copy William&#039;s makefile into your code directory and get to work.  Now you have your usual development tools at your fingertips.  (Emacs and Gedit have sweet colorization modes for verilog.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Machine ===&lt;br /&gt;
An OpenSuse Virtual Machine (VMWare based) will be available for people to use in this course, if they wish. This will&lt;br /&gt;
have the icarus verilog tools and GTKwave loaded on it, along with Firefox, gcc and make. The suseStudio team has encouraged the use of their VMs in such a manner (teaching workshops).  This is being built in susestudio, and will be available as a live install as well.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When we move over to the Xilinx tools, people will have to download and install the Xilinx tools by themselves, since that material is copyrighted.  Instructions will be given for doing that.&lt;br /&gt;
&lt;br /&gt;
The VMware VM image is ready (ver 0.5.2) for people to grab if they wish.  [http://susestudio.com/download/49e791d22097dd5694429fabe47ab5d2/Digital_Design__FPGA_Workshop_VM_v4.i686-0.5.2.vmx.tar.gz &#039;&#039;&#039;Get it here.&#039;&#039;&#039;]  &lt;br /&gt;
&lt;br /&gt;
The image also works with VirtualBox.  Create a new machine, and when it asks you for a hard drive, select use an existing drive.  This takes you to the hard-drives list dialog box.  From there, file..create a new drive, link it to the .vmdk file, select it, and you&#039;re all set.  For the rest, all defaults are ok.  (Bother Elliot for hints with VBox.)&lt;br /&gt;
&lt;br /&gt;
There are a few items of note regarding the VM&amp;lt;br&amp;gt;&lt;br /&gt;
* Download is approximately 350MB, the tarball is about 1.5GB in size, and the virtual disk will expand up to 20gigs dynamically.&lt;br /&gt;
* The download link is a virgin, freshly built VM, so you&#039;ll be the first user booting it up since build.&lt;br /&gt;
* There are two users, root and workshop.  Both have the password &#039;linux&#039;&lt;br /&gt;
* For the user workshop, ~/scripts/ is included in their $PATH&lt;br /&gt;
* Also, user workshop has a few small files in ~/resources/ including a simple upcounter design example.&lt;br /&gt;
* May need to run the network configuration tools to ensure you get functional networking.  I&#039;ve experienced issues with the VM in suspend mode, switching networks on the host machine, and completely loosing network on the VM until rerunning the network config tools.  They can be found poking around in the system settings for yast.&lt;br /&gt;
* Currently, the Xilinx Cable Drivers aren&#039;t building on the VM (but all the other Xilinx tools work).  If someone is a linux guru and wants to try to make it work, contact me at [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].  My next attempt is to turn the vm into a live-install and try building the cable drivers on real hardware instead of a VM.&lt;br /&gt;
* After loading the Xilinx settings (which will be covered in more detail when those tools are introduced), the current shell can no longer run icarus verilog flows.  Start a new shell in order to run icarus verilog. &lt;br /&gt;
* Its a fairly minimalist system, with the FOSS tools listed above load, along with firefox, gcc and nano.  Use yast or yast2 in order to install any additional packages. example yast2 --install &#039;&#039;packname&#039;&#039;&lt;br /&gt;
* If the download link stops working, the build has likely expired on the SuseStudio server.  Please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com] if the download link no longer works.&lt;br /&gt;
* Mad props to the susestudio team for making this possible&lt;br /&gt;
&lt;br /&gt;
== Lecture ==&lt;br /&gt;
Lecture/Discussions will mainly be based on content from a pair of courses in MIT&#039;s Opencourseware initiative. This content is licensed on the Creative Commons Attribution NonCommercial Share-alike 3.0 license; as a result, the electronic content generated by the workshop will also need to be made available under the same license. This will allow people to freely access just the discussion slides without watching through videos.&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; A video archive will be made available for those unable to attend.&lt;br /&gt;
&lt;br /&gt;
=== List of Lectures ===&lt;br /&gt;
&#039;&#039;This is currently an incomplete list, additional topics will be added as I solidify them - wgibb&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Week&lt;br /&gt;
|Date&lt;br /&gt;
|Topics Covered&lt;br /&gt;
|Exercise&lt;br /&gt;
|Solutions/Approach&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|October 7th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Lect1_draft2.pdf Workshop Introduction &amp;amp; Introduction to digital systems and design]&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|Lorem Ipsum&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|October 14th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Lect2_draf3.pdf Boolean Logic, combinatorial circuits and timing]&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools &amp;lt;br&amp;gt; |[http://wiki.hacdc.org/index.php/File:Lect2_exercise.pdf Boolean &amp;amp; Combinatorial Exercises]&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Lect2_sol.pdf Exercise Solutions]&lt;br /&gt;
[[Discussion 2 Exercises Solution notes]]&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|October 21st, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Lect3.pdf Introduction to Verilog Coding, focusing on combinatorial circuits]&lt;br /&gt;
|[[FPGAExercise3| Verilog Coding  Modular Full Adder Design and Simulation and ALU extension project]]&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|October 28th, 2009&lt;br /&gt;
|Introduction to Sequential Logic and Flip-Flops&lt;br /&gt;
|Modeling &amp;amp; Simulation of Flip Flops and simple Sequential Logic&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|November 11th, 2009&lt;br /&gt;
|Digital Arithmetic and adder styles&lt;br /&gt;
|Implement various adders, static gate delays &amp;amp; modeling their timing effects&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|November 18th, 2009&lt;br /&gt;
|Finite State Machines &amp;amp; You&lt;br /&gt;
|Modeling of Finite State machines&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|November 25th, 2009&lt;br /&gt;
|Testbenches in Verilog&lt;br /&gt;
|Practical FSM Exercise, event driven testbench&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|December 2nd, 2009&lt;br /&gt;
|Introduction to FPGAs - History, Capabilities and Features&lt;br /&gt;
|Load up Xilinx Tools &amp;amp; conversion of past exercises into ISE Projects, time permitting&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|December 9th, 2009&lt;br /&gt;
|Logic Synthesis &amp;amp; Design considerations with FPGAs&lt;br /&gt;
|Conversion of projects, simulation in iSim&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 16th, 2009&lt;br /&gt;
|TBD&lt;br /&gt;
|TBD&lt;br /&gt;
|TBD&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Videos of Discussions ===&lt;br /&gt;
The videos are  mpeg4 video with aac audio &amp;lt;br&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Week&lt;br /&gt;
| Video Links&lt;br /&gt;
| Notes&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV011.TOD.ff.mp4 Part 1] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV012.TOD.ff.mp4 Part 2] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV013.TOD.ff.mp4 Part 3] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV014.TOD.ff.mp4 Part 4] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV015.TOD.ff.mp4 Part 5] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV016.TOD.ff.mp4 Part 6] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV017.TOD.ff.mp4 Part 7] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week01/MOV018.TOD.ff.mp4 Part 8] &lt;br /&gt;
|not equal length&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week02/MOV005.TOD.ff.mp4 Part 1] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week02/MOV006.TOD.ff.mp4 Part 2] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week02/MOV007.TOD.ff.mp4 Part  3] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week02/MOV008.TOD.ff.mp4 Part 4]  &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week02/MOV009.TOD.ff.mp4 Part 5] &lt;br /&gt;
| Video cuts out at  a discussion about Rise and Fall times&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week03/10.avi Part 1] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week03/11.avi Part 2] &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week03/12.avi Part  3] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week03/13.avi Part 4]  &lt;br /&gt;
[http://wiki.hacdc.org/videos/hacdc-fpga/week03/14.avi Part 5] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workshop requirements ==&lt;br /&gt;
&lt;br /&gt;
This workshop will be free of charge to attend, but there are additional needs in order to fully benefit from attending the workshop.&lt;br /&gt;
* Open mind to learning&lt;br /&gt;
* Willingness to read documentation, as the capacity for independent research is important for doing hardware design.&lt;br /&gt;
* Willingness to commit time over this fall&lt;br /&gt;
* Either ability to run a VMWare virtual machine, the ability to convert the VM for virtualBox, or ability to install the icarus verilog/gtkwave tools on your own.  This will likely necessitate a laptop of some sort.&lt;br /&gt;
* Xilinx.com account, for licensing Xilinx tools and IP.&lt;br /&gt;
* Hardware will NOT be required at the beginning of the course but will be needed later on to run exercises and to do any interesting projects&lt;br /&gt;
&lt;br /&gt;
== Workshop Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
# What operating systems will the FPGA toolchain be available on?&lt;br /&gt;
##The Xilinx ISE Webpack is supported on Windows XP Pro, Windows Vista Business, Redhat Linux and Suse Linux Enterprise.  For a detailed list of official OS support, check out the [http://www.xilinx.com/ise/ossupport/index.htm Operating system support page on Xilinx.com].  The tools will run on openSuse as well. Feel free to try other linux distros and post your results.&lt;br /&gt;
# What is the cost of the FPGA development board we&#039;ll be using?&lt;br /&gt;
##The retail cost of the development board is typically around 199-220 USD, plus shipping, from a few different vendors.  Links for that are [[FPGA_Workshop#Spartan_3AN_Starter_Kit|here]].&lt;br /&gt;
# Will there be homework?&lt;br /&gt;
##Since this isn&#039;t an academic course, there will not be graded homework in the traditional sense.  I&#039;ll be choosing a few additional exercises that people can do outside of the workshop each week, if they wish, that will further help hone their skills.&lt;br /&gt;
# Will there be extensive C/C++ coding?&lt;br /&gt;
##C experience is not a prerequisite for this workshop. There will not be any C/C++ coding involved in the workshop directly.  There is one project that I&#039;ve got in mind that may be of interest to people that are proficient in C/C++ and pick up hardware design rather well.&lt;br /&gt;
&lt;br /&gt;
== Workshop Mailing List ==&lt;br /&gt;
&lt;br /&gt;
A HacDC Mailman mailling list has been setup for this workshop.  That list is fpga@hacdc.org.  You can subscribe to that list by sending an email to fpga-request@hacdc.org with the subject line &amp;quot;subscribe&amp;quot; or click the mailto link [mailto:fpga-request@hacdc.org?Subject=subscribe fpga-request@hacdc.org?Subject=subscribe] and let your email application handle it...&lt;br /&gt;
&lt;br /&gt;
== Workshop Instructor ==&lt;br /&gt;
&lt;br /&gt;
William Gibb, mad scientist.  For contacting him regarding the workshop, please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Grateful Dead Trees Reference ===&lt;br /&gt;
Fundamentals of Digital Logic with Verilog Design by Brown and Vranesic &amp;lt;br&amp;gt;&lt;br /&gt;
Verilog Quickstart: A Practical Guide to Simulation and Synthesis in Verilog by Lee &amp;lt;br&amp;gt;&lt;br /&gt;
FPGA Prototyping using Verilog Examples by Chu. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
These texts will not be required for the course, but are very good launching points for the topics that we are covering.&lt;br /&gt;
&lt;br /&gt;
=== Online References ===&lt;br /&gt;
==== FPGA Vendors ====&lt;br /&gt;
[http://www.xilinx.com/ Xilinx] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.altera.com/ Altera] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.actel.com/ Actel] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.atmel.com/products/fpga/ Atmel FPGA] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.siliconbluetech.com/ Silicon Blue] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.latticesemi.com/ Lattice Semiconductor] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.achronix.com/ Achronix] &amp;lt;br&amp;gt;&lt;br /&gt;
==== Course Resources ====&lt;br /&gt;
[http://www.icarus.com/eda/verilog/ Icaurus Verilog] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://gtkwave.sourceforge.net/ GTKWave] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/tools/designtools.htm Xilinx Design Tools] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/documentation/index.htm Xilinx Documentation] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.vmware.com/products/player/ VMware Player - Free download for Windows and Linux] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.susestudio.com SUSE Studio] SLED/OpenSUSE build service.  Make VMs, live installs, all customized &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Spartan 3AN Starter Kit ====&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm Spartan 3AN Starter Kit] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.em.avnet.com/evk/home/0,1707,RID%253D0%2526CID%253D45129%2526CCD%253DUSA%2526SID%253D32214%2526DID%253DDF2%2526LID%253D32232%2526PRT%253D0%2526PVW%253D%2526BID%253DDF2%2526CTP%253DEVK,00.html AVNet Spartan 3AN Starter Kit sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.nuhorizons.com/ NuHorizons - Xilinx Vendor] Do a search for HW-SPAR3AN-SK-UNI-G &amp;lt;br&amp;gt;&lt;br /&gt;
[http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2621773&amp;amp;k=spartan%203an Digi-key Spartan 3AN Starter Kit Sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
Probably also at other [[suppliers]].&lt;br /&gt;
&lt;br /&gt;
==== Group Order Participants ====&lt;br /&gt;
* Daniel (obscurite on #hacdc on freenode)&lt;br /&gt;
* Alden&lt;br /&gt;
* Dan Barlow&lt;br /&gt;
* Navid&lt;br /&gt;
* Matt Liggett&lt;br /&gt;
* Maitland Bottoms&lt;br /&gt;
* Ben Peizik (benparse@yahoo.com)&lt;br /&gt;
* Martin&lt;br /&gt;
* Rob Seastrom (rs@seastrom.com)&lt;br /&gt;
* Phillip Stewart&lt;br /&gt;
&lt;br /&gt;
==== MIT OpenCourseWare links ====&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm MIT OCW Terms of Use] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-004Computation-StructuresFall2002/CourseHome/index.htm OCW site for 6.004 - Computation Structures] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-111Spring-2006/CourseHome/index.htm OCW site for 6.111 Introductory Digital Systems, 2006] &amp;lt;br&amp;gt;&lt;br /&gt;
==== General Resources ====&lt;br /&gt;
[http://www.opencircuitdesign.com/ Open Circuit Design] Open Source design tools &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.doulos.com/knowhow/ Doulos Digital Design Resources] Good learning and design references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.asic-world.com/ ASIC World] Good learning references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.play-hookey.com/digital/ Play Hookey Digital Design] Good learning references&lt;br /&gt;
[http://www.fpga4fun.com/ FPGA4Fun] Lots of available IP &amp;lt;br&amp;gt;&lt;br /&gt;
[http://academic.csuohio.edu/chu_p/rtl/fpga_vlog.html Companion website for Professor Pong Chu&#039;s Verilog Book] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.opencores.org OpenCores] Very good repository for IP.  Also the home to the OpenRISC System on Chip project &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Classes]]&lt;br /&gt;
[[Category:FPGAWorkshop]]&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2303</id>
		<title>FPGA Workshop</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2303"/>
		<updated>2009-10-09T02:40:05Z</updated>

		<summary type="html">&lt;p&gt;Mml: /* Spartan 3AN Starter Kit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Topics ==&lt;br /&gt;
1) Introduction to digital logic &amp;amp; design&amp;lt;br&amp;gt;&lt;br /&gt;
2) Verilog HDL modeling &amp;amp; testing&amp;lt;br&amp;gt;&lt;br /&gt;
3) FPGA&#039;s &amp;amp; using them.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
We will be taking an approach of reviewing &amp;amp; learning digital design, implementing designs and methods of formally simulating and verifying designs before moving into [http://en.wikipedia.org/wiki/Field-programmable_gate_array FPGA] oriented work.  This workshop will be more engineering oriented than hobbyist/tinkerer oriented.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
We&#039;ll be covering some FPGA specific topics and projects using real hardware.  The first half of the workshop will cover logic design, implementation and testing.  This will allow people to put off ordering any hardware until they know that they actually want to pursue FPGA development, since the dev board I&#039;ve chosen for this is not cheap but I feel is robust enough to be a good starting board for this group.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The hardware we&#039;ll be using is the Xilinx Spartan 3AN development kit. This kit is available from a few vendors for 199USD + shipping.  This will be discussed more later on.  The kit includes programming cable, and evaluation copies of some of the Xilinx tools.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Verilog Simulation and Waveform Viewing ===&lt;br /&gt;
Icarus verilog &amp;amp; gtkwave; for doing Verilog compilation, simulation and waveform viewing. A makefile has been made to simplify the flow for any exercises and projects we use these tools with.  That makefile can be found [[iverilogmakefile|&#039;&#039;&#039;here&#039;&#039;&#039;]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FPGA Toolchain ===&lt;br /&gt;
After we finish up with covering Verilog modeling, we&#039;ll move to the Xilinx ISE Webpack tools and actual work with FPGAs.  This software is available from Xilinx for free, and is available for Windows and Linux platforms.  This will be used for Verilog compilation, simulation, synthesis of designs, design mapping, place and routing of designs, bitstream generation and board programming.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Virtual Machine ===&lt;br /&gt;
An OpenSuse Virtual Machine (VMWare based) will be available for people to use in this course, if they wish. This will&lt;br /&gt;
have the icarus verilog tools and GTKwave loaded on it, along with Firefox, gcc and make. The suseStudio team has encouraged the use of their VMs in such a manner (teaching workshops).  This is being built in susestudio, and will be available as a live install as well.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When we move over to the Xilinx tools, people will have to download and install the Xilinx tools by themselves, since that material is copyrighted.  Instructions will be given for doing that.&lt;br /&gt;
&lt;br /&gt;
The VMware VM image is ready (ver 0.5.2) for people to grab if they wish.  [http://susestudio.com/download/49e791d22097dd5694429fabe47ab5d2/Digital_Design__FPGA_Workshop_VM_v4.i686-0.5.2.vmx.tar.gz &#039;&#039;&#039;Get it here.&#039;&#039;&#039;]  There are a few items of note regarding the VM&amp;lt;br&amp;gt;&lt;br /&gt;
* Download is approximately 350MB, the tarball is about 1.5GB in size, and the virtual disk will expand up to 20gigs dynamically.&lt;br /&gt;
* The download link is a virgin, freshly built VM, so you&#039;ll be the first user booting it up since build.&lt;br /&gt;
* There are two users, root and workshop.  Both have the password &#039;linux&#039;&lt;br /&gt;
* For the user workshop, ~/scripts/ is included in their $PATH&lt;br /&gt;
* Also, user workshop has a few small files in ~/resources/ including a simple upcounter design example.&lt;br /&gt;
* May need to run the network configuration tools to ensure you get functional networking.  I&#039;ve experienced issues with the VM in suspend mode, switching networks on the host machine, and completely loosing network on the VM until rerunning the network config tools.  They can be found poking around in the system settings for yast.&lt;br /&gt;
* Currently, the Xilinx Cable Drivers aren&#039;t building on the VM (but all the other Xilinx tools work).  If someone is a linux guru and wants to try to make it work, contact me at [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].  My next attempt is to turn the vm into a live-install and try building the cable drivers on real hardware instead of a VM.&lt;br /&gt;
* After loading the Xilinx settings (which will be covered in more detail when those tools are introduced), the current shell can no longer run icarus verilog flows.  Start a new shell in order to run icarus verilog. &lt;br /&gt;
* Its a fairly minimalist system, with the FOSS tools listed above load, along with firefox, gcc and nano.  Use yast or yast2 in order to install any additional packages. example yast2 --install &#039;&#039;packname&#039;&#039;&lt;br /&gt;
* If the download link stops working, the build has likely expired on the SuseStudio server.  Please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com] if the download link no longer works.&lt;br /&gt;
* Mad props to the susestudio team for making this possible&lt;br /&gt;
&lt;br /&gt;
== Lecture ==&lt;br /&gt;
Lecture/Discussions will mainly be based on content from a pair of courses in MIT&#039;s Opencourseware initiative. This content is licensed on the Creative Commons Attribution NonCommercial Share-alike 3.0 license; as a result, the electronic content generated by the workshop will also need to be made available under the same license. This will allow people to freely access just the discussion slides without watching through videos.&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; A video archive will be made available for those unable to attend.&lt;br /&gt;
&lt;br /&gt;
=== List of Lectures ===&lt;br /&gt;
&#039;&#039;This is currently an incomplete list, additional topics will be added as I solidify them - wgibb&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Week&lt;br /&gt;
|Date&lt;br /&gt;
|Topics Covered&lt;br /&gt;
|Exercise&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|October 7th, 2009&lt;br /&gt;
|[http://rapidshare.com/files/290039620/lect1_draft2.pdf Workshop Introduction &amp;amp; Introduction to digital systems and design]&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|October 14th, 2009&lt;br /&gt;
|Boolean Logic, combinatorial circuits and timing&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|October 21st, 2009&lt;br /&gt;
|Introduction to Verilog Coding, focusing on combinatorial circuits&lt;br /&gt;
|Verilog Coding - Modular Full Adder Design and Simulation&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|October 28th, 2009&lt;br /&gt;
|Digital Arithmetic and adder styles&lt;br /&gt;
|Implement various adders, static gate delays &amp;amp; modeling their timing effects&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|November 11th, 2009&lt;br /&gt;
|Introduction to Sequential Logic and Flip-Flops&lt;br /&gt;
|Modeling &amp;amp; Simulation of Flip Flops and simple Sequential Logic&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|November 18th, 2009&lt;br /&gt;
|Finite State Machines &amp;amp; You&lt;br /&gt;
|Modeling of Finite State machines&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|November 25th, 2009&lt;br /&gt;
|Testbenches in Verilog&lt;br /&gt;
|Practical FSM Exercise, event driven testbench&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|December 2nd, 2009&lt;br /&gt;
|Introduction to FPGAs - History, Capabilities and Features&lt;br /&gt;
|Load up Xilinx Tools &amp;amp; conversion of past exercises into ISE Projects, time permitting&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|December 9th, 2009&lt;br /&gt;
|Logic Synthesis &amp;amp; Design considerations with FPGAs&lt;br /&gt;
|Conversion of projects, simulation in iSim&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 16th, 2009&lt;br /&gt;
|TBD&lt;br /&gt;
|TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workshop requirements ==&lt;br /&gt;
&lt;br /&gt;
This workshop will be free of charge to attend, but there are additional needs in order to fully benefit from attending the workshop.&lt;br /&gt;
* Open mind to learning&lt;br /&gt;
* Willingness to read documentation, as the capacity for independent research is important for doing hardware design.&lt;br /&gt;
* Willingness to commit time over this fall&lt;br /&gt;
* Either ability to run a VMWare virtual machine, the ability to convert the VM for virtualBox, or ability to install the icarus verilog/gtkwave tools on your own.  This will likely necessitate a laptop of some sort.&lt;br /&gt;
* Xilinx.com account, for licensing Xilinx tools and IP.&lt;br /&gt;
* Hardware will NOT be required at the beginning of the course but will be needed later on to run exercises and to do any interesting projects&lt;br /&gt;
&lt;br /&gt;
== Workshop Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
# What operating systems will the FPGA toolchain be available on?&lt;br /&gt;
##The Xilinx ISE Webpack is supported on Windows XP Pro, Windows Vista Business, Redhat Linux and Suse Linux Enterprise.  For a detailed list of official OS support, check out the [http://www.xilinx.com/ise/ossupport/index.htm Operating system support page on Xilinx.com].  The tools will run on openSuse as well. Feel free to try other linux distros and post your results.&lt;br /&gt;
# What is the cost of the FPGA development board we&#039;ll be using?&lt;br /&gt;
##The retail cost of the development board is typically around 199-220 USD, plus shipping, from a few different vendors.  Links for that are [[FPGA_Workshop#Spartan_3AN_Starter_Kit|here]].&lt;br /&gt;
# Will there be homework?&lt;br /&gt;
##Since this isn&#039;t an academic course, there will not be graded homework in the traditional sense.  I&#039;ll be choosing a few additional exercises that people can do outside of the workshop each week, if they wish, that will further help hone their skills.&lt;br /&gt;
# Will there be extensive C/C++ coding?&lt;br /&gt;
##C experience is not a prerequisite for this workshop. There will not be any C/C++ coding involved in the workshop directly.  There is one project that I&#039;ve got in mind that may be of interest to people that are proficient in C/C++ and pick up hardware design rather well.&lt;br /&gt;
&lt;br /&gt;
== Workshop Instructor ==&lt;br /&gt;
&lt;br /&gt;
William Gibb, mad scientist.  For contacting him regarding the workshop, please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Grateful Dead Trees Reference ===&lt;br /&gt;
Fundamentals of Digital Logic with Verilog Design by Brown and Vranesic &amp;lt;br&amp;gt;&lt;br /&gt;
Verilog Quickstart: A Practical Guide to Simulation and Synthesis in Verilog by Lee &amp;lt;br&amp;gt;&lt;br /&gt;
FPGA Prototyping using Verilog Examples by Chu. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
These texts will not be required for the course, but are very good launching points for the topics that we are covering.&lt;br /&gt;
&lt;br /&gt;
=== Online References ===&lt;br /&gt;
==== FPGA Vendors ====&lt;br /&gt;
[http://www.xilinx.com/ Xilinx] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.altera.com/ Altera] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.actel.com/ Actel] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.atmel.com/products/fpga/ Atmel FPGA] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.siliconbluetech.com/ Silicon Blue] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.latticesemi.com/ Lattice Semiconductor] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.achronix.com/ Achronix] &amp;lt;br&amp;gt;&lt;br /&gt;
==== Course Resources ====&lt;br /&gt;
[http://www.icarus.com/eda/verilog/ Icaurus Verilog] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://gtkwave.sourceforge.net/ GTKWave] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/tools/designtools.htm Xilinx Design Tools] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/documentation/index.htm Xilinx Documentation] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.vmware.com/products/player/ VMware Player - Free download for Windows and Linux] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.susestudio.com SUSE Studio] SLED/OpenSUSE build service.  Make VMs, live installs, all customized &amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.ubuntu.com/UbuntuMagazine/HowTo/Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool Convert VMware VMs to VirtualBox vms] (only works on VMDK files, not VMX) untested by course instructor &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Spartan 3AN Starter Kit ====&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm Spartan 3AN Starter Kit] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.em.avnet.com/evk/home/0,1707,RID%253D0%2526CID%253D45129%2526CCD%253DUSA%2526SID%253D32214%2526DID%253DDF2%2526LID%253D32232%2526PRT%253D0%2526PVW%253D%2526BID%253DDF2%2526CTP%253DEVK,00.html AVNet Spartan 3AN Starter Kit sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.nuhorizons.com/ NuHorizons - Xilinx Vendor] Do a search for HW-SPAR3AN-SK-UNI-G &amp;lt;br&amp;gt;&lt;br /&gt;
[http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2621773&amp;amp;k=spartan%203an Digi-key Spartan 3AN Starter Kit Sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
Probably also at other [[suppliers]].&lt;br /&gt;
&lt;br /&gt;
Group Order Participants&lt;br /&gt;
* Daniel (obscurite on #hacdc on freenode)&lt;br /&gt;
* Alden&lt;br /&gt;
* Dan Barlow&lt;br /&gt;
* Navid&lt;br /&gt;
* Matt Liggett&lt;br /&gt;
&lt;br /&gt;
==== MIT OpenCourseWare links ====&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm MIT OCW Terms of Use] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-004Computation-StructuresFall2002/CourseHome/index.htm OCW site for 6.004 - Computation Structures] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-111Spring-2006/CourseHome/index.htm OCW site for 6.111 Introductory Digital Systems, 2006] &amp;lt;br&amp;gt;&lt;br /&gt;
==== General Resources ====&lt;br /&gt;
[http://www.opencircuitdesign.com/ Open Circuit Design] Open Source design tools &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.doulos.com/knowhow/ Doulos Digital Design Resources] Good learning and design references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.asic-world.com/ ASIC World] Good learning references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.fpga4fun.com/ FPGA4Fun] Lots of available IP &amp;lt;br&amp;gt;&lt;br /&gt;
[http://academic.csuohio.edu/chu_p/rtl/fpga_vlog.html Companion website for Professor Pong Chu&#039;s Verilog Book] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.opencores.org OpenCores] Very good repository for IP.  Also the home to the OpenRISC System on Chip project &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Category:Ongoing_Projects&amp;diff=2300</id>
		<title>Category:Ongoing Projects</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Category:Ongoing_Projects&amp;diff=2300"/>
		<updated>2009-10-08T16:18:36Z</updated>

		<summary type="html">&lt;p&gt;Mml: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Descriptions ==&lt;br /&gt;
&lt;br /&gt;
* [[Keysigning]]: Keysigning Parties at HacDC. First one was on Sept 10, 2009. They will be held every 2-3 months.&lt;br /&gt;
&lt;br /&gt;
* [[LightningTalks]]: 12 speakers present 5 minutes talks on any topic that interests them! Monthly.&lt;br /&gt;
&lt;br /&gt;
* [[HacDC Intranet Server]]: An Intranet server provides an on-site platform for interfacing HacDC-specific devices or scripts or files. &lt;br /&gt;
&lt;br /&gt;
* [[HacDC Multi-touch device]]: Build a multi-touch display interface so that it can become a user interface for future HacDC project&lt;br /&gt;
&lt;br /&gt;
* [[Occupancy Sensor]]: PIR motion sensor with output embeddable in various webpages, so people could see when the space is occupied.&lt;br /&gt;
&lt;br /&gt;
* [[Physical Access Control Project]]: Doors, Locks, and their Control&lt;br /&gt;
&lt;br /&gt;
* [[Project Red Phone]]:  We&#039;ve now got a phone in the space so people can see if someone&#039;s there (or call for emergency cupcakes if they&#039;ve broken their pinkie).  &lt;br /&gt;
&lt;br /&gt;
* [[Python Sprint Project]]: &lt;br /&gt;
&lt;br /&gt;
* [[Stuff]]: HacDC has lots of stuff. More stuff is always coming in. HacDC has a limited amount of space. Some stuff has to go out. &lt;br /&gt;
&lt;br /&gt;
* [[Components Store]]: Since the honor-system soda stock in the fridge is working so well, we now have a stock of electronic components that works the same way.&lt;br /&gt;
&lt;br /&gt;
* [[Vast VU Meter]]: Take a row of windows in the building and place lamps in them to form a vertical bar VU meter showing the volume of the radio station&#039;s broadcast.&lt;br /&gt;
&lt;br /&gt;
* [[RepRap Build-a-Thon]]: An event where members of the public get an opportunity to learn about RepRap technology.&lt;br /&gt;
&lt;br /&gt;
* [[Wanted Workshops]]: A means for the community to express its needs and desires.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2297</id>
		<title>FPGA Workshop</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2297"/>
		<updated>2009-10-08T13:18:21Z</updated>

		<summary type="html">&lt;p&gt;Mml: /* Spartan 3AN Starter Kit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Topics ==&lt;br /&gt;
1) Introduction to digital logic &amp;amp; design&amp;lt;br&amp;gt;&lt;br /&gt;
2) Verilog HDL modeling &amp;amp; testing&amp;lt;br&amp;gt;&lt;br /&gt;
3) FPGA&#039;s &amp;amp; using them.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
We will be taking an approach of reviewing &amp;amp; learning digital design, implementing designs and methods of formally simulating and verifying designs before moving into [http://en.wikipedia.org/wiki/Field-programmable_gate_array FPGA] oriented work.  This workshop will be more engineering oriented than hobbyist/tinkerer oriented.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
We&#039;ll be covering some FPGA specific topics and projects using real hardware.  The first half of the workshop will cover logic design, implementation and testing.  This will allow people to put off ordering any hardware until they know that they actually want to pursue FPGA development, since the dev board I&#039;ve chosen for this is not cheap but I feel is robust enough to be a good starting board for this group.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The hardware we&#039;ll be using is the Xilinx Spartan 3AN development kit. This kit is available from a few vendors for 199USD + shipping.  This will be discussed more later on.  The kit includes programming cable, and evaluation copies of some of the Xilinx tools.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Verilog Simulation and Waveform Viewing ===&lt;br /&gt;
Icarus verilog &amp;amp; gtkwave; for doing Verilog compilation, simulation and waveform viewing. A makefile has been made to simplify the flow for any exercises and projects we use these tools with.  That makefile can be found [[iverilogmakefile|&#039;&#039;&#039;here&#039;&#039;&#039;]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FPGA Toolchain ===&lt;br /&gt;
After we finish up with covering Verilog modeling, we&#039;ll move to the Xilinx ISE Webpack tools and actual work with FPGAs.  This software is available from Xilinx for free, and is available for Windows and Linux platforms.  This will be used for Verilog compilation, simulation, synthesis of designs, design mapping, place and routing of designs, bitstream generation and board programming.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Virtual Machine ===&lt;br /&gt;
An OpenSuse Virtual Machine (VMWare based) will be available for people to use in this course, if they wish. This will&lt;br /&gt;
have the icarus verilog tools and GTKwave loaded on it, along with Firefox, gcc and make. The suseStudio team has encouraged the use of their VMs in such a manner (teaching workshops).  This is being built in susestudio, and will be available as a live install as well.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When we move over to the Xilinx tools, people will have to download and install the Xilinx tools by themselves, since that material is copyrighted.  Instructions will be given for doing that.&lt;br /&gt;
&lt;br /&gt;
The VMware VM image is ready (ver 0.5.2) for people to grab if they wish.  [http://susestudio.com/download/49e791d22097dd5694429fabe47ab5d2/Digital_Design__FPGA_Workshop_VM_v4.i686-0.5.2.vmx.tar.gz &#039;&#039;&#039;Get it here.&#039;&#039;&#039;]  There are a few items of note regarding the VM&amp;lt;br&amp;gt;&lt;br /&gt;
* Download is approximately 350MB, the tarball is about 1.5GB in size, and the virtual disk will expand up to 20gigs dynamically.&lt;br /&gt;
* The download link is a virgin, freshly built VM, so you&#039;ll be the first user booting it up since build.&lt;br /&gt;
* There are two users, root and workshop.  Both have the password &#039;linux&#039;&lt;br /&gt;
* For the user workshop, ~/scripts/ is included in their $PATH&lt;br /&gt;
* Also, user workshop has a few small files in ~/resources/ including a simple upcounter design example.&lt;br /&gt;
* May need to run the network configuration tools to ensure you get functional networking.  I&#039;ve experienced issues with the VM in suspend mode, switching networks on the host machine, and completely loosing network on the VM until rerunning the network config tools.  They can be found poking around in the system settings for yast.&lt;br /&gt;
* Currently, the Xilinx Cable Drivers aren&#039;t building on the VM (but all the other Xilinx tools work).  If someone is a linux guru and wants to try to make it work, contact me at [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].  My next attempt is to turn the vm into a live-install and try building the cable drivers on real hardware instead of a VM.&lt;br /&gt;
* After loading the Xilinx settings (which will be covered in more detail when those tools are introduced), the current shell can no longer run icarus verilog flows.  Start a new shell in order to run icarus verilog. &lt;br /&gt;
* Its a fairly minimalist system, with the FOSS tools listed above load, along with firefox, gcc and nano.  Use yast or yast2 in order to install any additional packages. example yast2 --install &#039;&#039;packname&#039;&#039;&lt;br /&gt;
* If the download link stops working, the build has likely expired on the SuseStudio server.  Please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com] if the download link no longer works.&lt;br /&gt;
* Mad props to the susestudio team for making this possible&lt;br /&gt;
&lt;br /&gt;
== Lecture ==&lt;br /&gt;
Lecture/Discussions will mainly be based on content from a pair of courses in MIT&#039;s Opencourseware initiative. This content is licensed on the Creative Commons Attribution NonCommercial Share-alike 3.0 license; as a result, the electronic content generated by the workshop will also need to be made available under the same license. This will allow people to freely access just the discussion slides without watching through videos.&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; A video archive will be made available for those unable to attend.&lt;br /&gt;
&lt;br /&gt;
=== List of Lectures ===&lt;br /&gt;
&#039;&#039;This is currently an incomplete list, additional topics will be added as I solidify them - wgibb&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Week&lt;br /&gt;
|Date&lt;br /&gt;
|Topics Covered&lt;br /&gt;
|Exercise&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|October 7th, 2009&lt;br /&gt;
|[http://rapidshare.com/files/290039620/lect1_draft2.pdf Workshop Introduction &amp;amp; Introduction to digital systems and design]&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|October 14th, 2009&lt;br /&gt;
|Boolean Logic, combinatorial circuits and timing&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|October 21st, 2009&lt;br /&gt;
|Introduction to Verilog Coding, focusing on combinatorial circuits&lt;br /&gt;
|Verilog Coding - Modular Full Adder Design and Simulation&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|October 28th, 2009&lt;br /&gt;
|Digital Arithmetic and adder styles&lt;br /&gt;
|Implement various adders, static gate delays &amp;amp; modeling their timing effects&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|November 11th, 2009&lt;br /&gt;
|Introduction to Sequential Logic and Flip-Flops&lt;br /&gt;
|Modeling &amp;amp; Simulation of Flip Flops and simple Sequential Logic&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|November 18th, 2009&lt;br /&gt;
|Finite State Machines &amp;amp; You&lt;br /&gt;
|Modeling of Finite State machines&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|November 25th, 2009&lt;br /&gt;
|Testbenches in Verilog&lt;br /&gt;
|Practical FSM Exercise, event driven testbench&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|December 2nd, 2009&lt;br /&gt;
|Introduction to FPGAs - History, Capabilities and Features&lt;br /&gt;
|Load up Xilinx Tools &amp;amp; conversion of past exercises into ISE Projects, time permitting&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|December 9th, 2009&lt;br /&gt;
|Logic Synthesis &amp;amp; Design considerations with FPGAs&lt;br /&gt;
|Conversion of projects, simulation in iSim&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 16th, 2009&lt;br /&gt;
|TBD&lt;br /&gt;
|TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workshop requirements ==&lt;br /&gt;
&lt;br /&gt;
This workshop will be free of charge to attend, but there are additional needs in order to fully benefit from attending the workshop.&lt;br /&gt;
* Open mind to learning&lt;br /&gt;
* Willingness to read documentation, as the capacity for independent research is important for doing hardware design.&lt;br /&gt;
* Willingness to commit time over this fall&lt;br /&gt;
* Either ability to run a VMWare virtual machine, the ability to convert the VM for virtualBox, or ability to install the icarus verilog/gtkwave tools on your own.  This will likely necessitate a laptop of some sort.&lt;br /&gt;
* Xilinx.com account, for licensing Xilinx tools and IP.&lt;br /&gt;
* Hardware will NOT be required at the beginning of the course but will be needed later on to run exercises and to do any interesting projects&lt;br /&gt;
&lt;br /&gt;
== Workshop Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
# What operating systems will the FPGA toolchain be available on?&lt;br /&gt;
##The Xilinx ISE Webpack is supported on Windows XP Pro, Windows Vista Business, Redhat Linux and Suse Linux Enterprise.  For a detailed list of official OS support, check out the [http://www.xilinx.com/ise/ossupport/index.htm Operating system support page on Xilinx.com].  The tools will run on openSuse as well. Feel free to try other linux distros and post your results.&lt;br /&gt;
# What is the cost of the FPGA development board we&#039;ll be using?&lt;br /&gt;
##The retail cost of the development board is typically around 199-220 USD, plus shipping, from a few different vendors.  Links for that are [[FPGA_Workshop#Spartan_3AN_Starter_Kit|here]].&lt;br /&gt;
# Will there be homework?&lt;br /&gt;
##Since this isn&#039;t an academic course, there will not be graded homework in the traditional sense.  I&#039;ll be choosing a few additional exercises that people can do outside of the workshop each week, if they wish, that will further help hone their skills.&lt;br /&gt;
# Will there be extensive C/C++ coding?&lt;br /&gt;
##C experience is not a prerequisite for this workshop. There will not be any C/C++ coding involved in the workshop directly.  There is one project that I&#039;ve got in mind that may be of interest to people that are proficient in C/C++ and pick up hardware design rather well.&lt;br /&gt;
&lt;br /&gt;
== Workshop Instructor ==&lt;br /&gt;
&lt;br /&gt;
William Gibb, mad scientist.  For contacting him regarding the workshop, please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Grateful Dead Trees Reference ===&lt;br /&gt;
Fundamentals of Digital Logic with Verilog Design by Brown and Vranesic &amp;lt;br&amp;gt;&lt;br /&gt;
Verilog Quickstart: A Practical Guide to Simulation and Synthesis in Verilog by Lee &amp;lt;br&amp;gt;&lt;br /&gt;
FPGA Prototyping using Verilog Examples by Chu. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
These texts will not be required for the course, but are very good launching points for the topics that we are covering.&lt;br /&gt;
&lt;br /&gt;
=== Online References ===&lt;br /&gt;
==== FPGA Vendors ====&lt;br /&gt;
[http://www.xilinx.com/ Xilinx] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.altera.com/ Altera] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.actel.com/ Actel] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.atmel.com/products/fpga/ Atmel FPGA] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.siliconbluetech.com/ Silicon Blue] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.latticesemi.com/ Lattice Semiconductor] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.achronix.com/ Achronix] &amp;lt;br&amp;gt;&lt;br /&gt;
==== Course Resources ====&lt;br /&gt;
[http://www.icarus.com/eda/verilog/ Icaurus Verilog] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://gtkwave.sourceforge.net/ GTKWave] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/tools/designtools.htm Xilinx Design Tools] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/documentation/index.htm Xilinx Documentation] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.vmware.com/products/player/ VMware Player - Free download for Windows and Linux] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.susestudio.com SUSE Studio] SLED/OpenSUSE build service.  Make VMs, live installs, all customized &amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.ubuntu.com/UbuntuMagazine/HowTo/Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool Convert VMware VMs to VirtualBox vms] (only works on VMDK files, not VMX) untested by course instructor &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Spartan 3AN Starter Kit ====&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm Spartan 3AN Starter Kit] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.em.avnet.com/evk/home/0,1707,RID%253D0%2526CID%253D45129%2526CCD%253DUSA%2526SID%253D32214%2526DID%253DDF2%2526LID%253D32232%2526PRT%253D0%2526PVW%253D%2526BID%253DDF2%2526CTP%253DEVK,00.html AVNet Spartan 3AN Starter Kit sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.nuhorizons.com/ NuHorizons - Xilinx Vendor] Do a search for HW-SPAR3AN-SK-UNI-G &amp;lt;br&amp;gt;&lt;br /&gt;
[http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2621773&amp;amp;k=spartan%203an Digi-key Spartan 3AN Starter Kit Sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
Probably also at other [[suppliers]].&lt;br /&gt;
&lt;br /&gt;
Group Order Participants&lt;br /&gt;
* Daniel (obscurite on #hacdc on freenode)&lt;br /&gt;
&lt;br /&gt;
==== MIT OpenCourseWare links ====&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm MIT OCW Terms of Use] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-004Computation-StructuresFall2002/CourseHome/index.htm OCW site for 6.004 - Computation Structures] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-111Spring-2006/CourseHome/index.htm OCW site for 6.111 Introductory Digital Systems, 2006] &amp;lt;br&amp;gt;&lt;br /&gt;
==== General Resources ====&lt;br /&gt;
[http://www.opencircuitdesign.com/ Open Circuit Design] Open Source design tools &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.doulos.com/knowhow/ Doulos Digital Design Resources] Good learning and design references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.asic-world.com/ ASIC World] Good learning references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.fpga4fun.com/ FPGA4Fun] Lots of available IP &amp;lt;br&amp;gt;&lt;br /&gt;
[http://academic.csuohio.edu/chu_p/rtl/fpga_vlog.html Companion website for Professor Pong Chu&#039;s Verilog Book] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.opencores.org OpenCores] Very good repository for IP.  Also the home to the OpenRISC System on Chip project &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2286</id>
		<title>FPGA Workshop</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2286"/>
		<updated>2009-10-06T03:14:23Z</updated>

		<summary type="html">&lt;p&gt;Mml: /* Course Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Topics ==&lt;br /&gt;
1) Introduction to digital logic &amp;amp; design&amp;lt;br&amp;gt;&lt;br /&gt;
2) Verilog HDL modeling &amp;amp; testing&amp;lt;br&amp;gt;&lt;br /&gt;
3) FPGA&#039;s &amp;amp; using them.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
We will be taking an approach of reviewing &amp;amp; learning digital design, implementing designs and methods of formally simulating and verifying designs before moving into FPGA oriented work.  This workshop will be more engineering oriented than hobbyist/tinkerer oriented.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
We&#039;ll be covering some FPGA specific topics and projects using real hardware.  The first half of the workshop will cover logic design, implementation and testing.  This will allow people to put off ordering any hardware until they know that they actually want to pursue FPGA development, since the dev board I&#039;ve chosen for this is not cheap but I feel is robust enough to be a good starting board for this group.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The hardware we&#039;ll be using is the Xilinx Spartan 3AN development kit. This kit is available from a few vendors for 199USD + shipping.  This will be discussed more later on.  The kit includes programming cable, and evaluation copies of some of the Xilinx tools.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Verilog Simulation and Waveform Viewing ===&lt;br /&gt;
Icarus verilog &amp;amp; gtkwave; for doing Verilog compilation, simulation and waveform viewing. A makefile has been made to simplify the flow for any exercises and projects we use these tools with.  That makefile can be found [[iverilogmakefile|&#039;&#039;&#039;here&#039;&#039;&#039;]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FPGA Toolchain ===&lt;br /&gt;
After we finish up with covering Verilog modeling, we&#039;ll move to the Xilinx ISE Webpack tools and actual work with FPGAs.  This software is available from Xilinx for free, and is available for Windows and Linux platforms.  This will be used for Verilog compilation, simulation, synthesis of designs, design mapping, place and routing of designs, bitstream generation and board programming.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Virtual Machine ===&lt;br /&gt;
An OpenSuse Virtual Machine (VMWare based) will be available for people to use in this course, if they wish. This will&lt;br /&gt;
have the icarus verilog tools and GTKwave loaded on it, along with Firefox, gcc and make. The suseStudio team has encouraged the use of their VMs in such a manner (teaching workshops).  This is being built in susestudio, and will be available as a live install as well.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When we move over to the Xilinx tools, people will have to download and install the Xilinx tools by themselves, since that material is copyrighted.  Instructions will be given for doing that.&lt;br /&gt;
&lt;br /&gt;
The VMware VM image is ready (ver 0.5.2) for people to grab if they wish.  [http://susestudio.com/download/49e791d22097dd5694429fabe47ab5d2/Digital_Design__FPGA_Workshop_VM_v4.i686-0.5.2.vmx.tar.gz Get it here.]  There are a few items of note regarding the VM&amp;lt;br&amp;gt;&lt;br /&gt;
* The download link is a virgin, freshly built VM, so you&#039;ll be the first user booting it up since build.&lt;br /&gt;
* There are two users, root and workshop.  Both have the password &#039;linux&#039;&lt;br /&gt;
* For the user workshop, ~/scripts/ is included in their $PATH&lt;br /&gt;
* Also, user workshop has a few small files in ~/resources/ including a simple upcounter design example.&lt;br /&gt;
* May need to run the network configuration tools to ensure you get functional networking.  I&#039;ve experienced issues with the VM in suspend mode, switching networks on the host machine, and completely loosing network on the VM until rerunning the network config tools.  They can be found poking around in the system settings for yast.&lt;br /&gt;
* Currently, the Xilinx Cable Drivers aren&#039;t building on the VM (but all the other Xilinx tools work).  If someone is a linux guru and wants to try to make it work, contact me at [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].  My next attempt is to turn the vm into a live-install and try building the cable drivers on real hardware instead of a VM.&lt;br /&gt;
* After loading the Xilinx settings (which will be covered in more detail when those tools are introduced), the current shell can no longer run icarus verilog flows.  Start a new shell in order to run icarus verilog. &lt;br /&gt;
* Its a fairly minimalist system, with the FOSS tools listed above load, along with firefox, gcc and nano.  Use yast or yast2 in order to install any additional packages. example yast2 --install &#039;&#039;packname&#039;&#039;&lt;br /&gt;
* If the download link stops working, the build has expired on the SuseStudio server.  Please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com] if the download link no longer works.&lt;br /&gt;
* Mad props to the susestudio team for making this possible&lt;br /&gt;
&lt;br /&gt;
== Lecture ==&lt;br /&gt;
Lecture/Discussions will mainly be based on content from a pair of courses in MIT&#039;s Opencourseware initiative. This content is licensed on the Creative Commons Attribution NonCommercial Share-alike 3.0 license; as a result, the electronic content generated by the workshop will also need to be made available under the same license. This will allow people to freely access just the discussion slides without watching through videos.&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; A video archive will be made available for those unable to attend.&lt;br /&gt;
&lt;br /&gt;
=== List of Lectures ===&lt;br /&gt;
&#039;&#039;This is currently an incomplete list, additional topics will be added as I solidify them - wgibb&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Week&lt;br /&gt;
|Date&lt;br /&gt;
|Topics Covered&lt;br /&gt;
|Exercise&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|October 7th, 2009&lt;br /&gt;
|Workshop Introduction &amp;amp; Introduction to digital systems and design&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|October 14th, 2009&lt;br /&gt;
|Boolean Logic, combinatorial circuits and timing&lt;br /&gt;
|Make sure people can run the Virtual Machine or FOSS tools&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|October 21st, 2009&lt;br /&gt;
|Introduction to Verilog Coding, focusing on combinatorial circuits&lt;br /&gt;
|Verilog Coding - Modular Full Adder Design and Simulation&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|October 28th, 2009&lt;br /&gt;
|Digital Arithmetic and adder styles&lt;br /&gt;
|Implement various adders, static gate delays &amp;amp; modeling their timing effects&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|November 11th, 2009&lt;br /&gt;
|Introduction to Sequential Logic and Flip-Flops&lt;br /&gt;
|Modeling &amp;amp; Simulation of Flip Flops and simple Sequential Logic&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|November 18th, 2009&lt;br /&gt;
|Finite State Machines &amp;amp; You&lt;br /&gt;
|Modeling of Finite State machines&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|November 25th, 2009&lt;br /&gt;
|Testbenches in Verilog&lt;br /&gt;
|Practical FSM Exercise, event driven testbench&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|December 2nd, 2009&lt;br /&gt;
|Introduction to FPGAs - History, Capabilities and Features&lt;br /&gt;
|Load up Xilinx Tools &amp;amp; conversion of past exercises into ISE Projects, time permitting&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|December 9th, 2009&lt;br /&gt;
|Logic Synthesis &amp;amp; Design considerations with FPGAs&lt;br /&gt;
|Conversion of projects, simulation in iSim&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 16th, 2009&lt;br /&gt;
|TBD&lt;br /&gt;
|TBD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workshop requirements ==&lt;br /&gt;
&lt;br /&gt;
This workshop will be free of charge to attend, but there are additional needs in order to fully benefit from attending the workshop.&lt;br /&gt;
* Open mind to learning&lt;br /&gt;
* Willingness to read documentation, as the capacity for independent research is important for doing hardware design.&lt;br /&gt;
* Willingness to commit time over this fall&lt;br /&gt;
* Either ability to run a VMWare virtual machine, the ability to convert the VM for virtualBox, or ability to install the icarus verilog/gtkwave tools on your own.  This will likely necessitate a laptop of some sort.&lt;br /&gt;
* Xilinx.com account, for licensing Xilinx tools and IP.&lt;br /&gt;
* Hardware will NOT be required at the beginning of the course but will be needed later on to run exercises and to do any interesting projects&lt;br /&gt;
&lt;br /&gt;
== Workshop Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
# What operating systems will the FPGA toolchain be available on?&lt;br /&gt;
##The Xilinx ISE Webpack is supported on Windows XP Pro, Windows Vista Business, Redhat Linux and Suse Linux Enterprise.  For a detailed list of official OS support, check out the [http://www.xilinx.com/ise/ossupport/index.htm Operating system support page on Xilinx.com].  The tools will run on openSuse as well. Feel free to try other linux distros and post your results.&lt;br /&gt;
# What is the cost of the FPGA development board we&#039;ll be using?&lt;br /&gt;
##The retail cost of the development board is typically around 199-220 USD, plus shipping, from a few different vendors.  Links for that are [[FPGA_Workshop#Spartan_3AN_Starter_Kit|here]].&lt;br /&gt;
# Will there be homework?&lt;br /&gt;
##Since this isn&#039;t an academic course, there will not be graded homework in the traditional sense.  I&#039;ll be choosing a few additional exercises that people can do outside of the workshop each week, if they wish, that will further help hone their skills.&lt;br /&gt;
# Will there be extensive C/C++ coding?&lt;br /&gt;
##C experience is not a prerequisite for this workshop. There will not be any C/C++ coding involved in the workshop directly.  There is one project that I&#039;ve got in mind that may be of interest to people that are proficient in C/C++ and pick up hardware design rather well.&lt;br /&gt;
&lt;br /&gt;
== Workshop Instructor ==&lt;br /&gt;
&lt;br /&gt;
William Gibb, mad scientist.  For contacting him regarding the workshop, please email [mailto:teachmeFPGA@gmail.com teachmeFPGA@gmail.com].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Grateful Dead Trees Reference ===&lt;br /&gt;
Fundamentals of Digital Logic with Verilog Design by Brown and Vranesic &amp;lt;br&amp;gt;&lt;br /&gt;
Verilog Quickstart: A Practical Guide to Simulation and Synthesis in Verilog by Lee &amp;lt;br&amp;gt;&lt;br /&gt;
FPGA Prototyping using Verilog Examples by Chu. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
These texts will not be required for the course, but are very good launching points for the topics that we are covering.&lt;br /&gt;
&lt;br /&gt;
=== Online References ===&lt;br /&gt;
==== FPGA Vendors ====&lt;br /&gt;
[http://www.xilinx.com/ Xilinx] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.altera.com/ Altera] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.actel.com/ Actel] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.atmel.com/products/fpga/ Atmel FPGA] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.siliconbluetech.com/ Silicon Blue] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.latticesemi.com/ Lattice Semiconductor] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.achronix.com/ Achronix] &amp;lt;br&amp;gt;&lt;br /&gt;
==== Course Resources ====&lt;br /&gt;
[http://www.icarus.com/eda/verilog/ Icaurus Verilog] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://gtkwave.sourceforge.net/ GTKWave] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/tools/designtools.htm Xilinx Design Tools] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/documentation/index.htm Xilinx Documentation] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.vmware.com/products/player/ VMware Player - Free download for Windows and Linux] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.susestudio.com SUSE Studio] SLED/OpenSUSE build service.  Make VMs, live installs, all customized &amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.ubuntu.com/UbuntuMagazine/HowTo/Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool Convert VMware VMs to VirtualBox vms] (only works on VMDK files, not VMX) untested by course instructor &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Spartan 3AN Starter Kit ====&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm Spartan 3AN Starter Kit] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.em.avnet.com/evk/home/0,1707,RID%253D0%2526CID%253D45129%2526CCD%253DUSA%2526SID%253D32214%2526DID%253DDF2%2526LID%253D32232%2526PRT%253D0%2526PVW%253D%2526BID%253DDF2%2526CTP%253DEVK,00.html AVNet Spartan 3AN Starter Kit sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.nuhorizons.com/ NuHorizons - Xilinx Vendor] Do a search for HW-SPAR3AN-SK-UNI-G &amp;lt;br&amp;gt;&lt;br /&gt;
[http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2621773&amp;amp;k=spartan%203an Digi-key Spartan 3AN Starter Kit Sales page] &amp;lt;br&amp;gt;&lt;br /&gt;
==== MIT OpenCourseWare links ====&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm MIT OCW Terms of Use] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-004Computation-StructuresFall2002/CourseHome/index.htm OCW site for 6.004 - Computation Structures] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-111Spring-2006/CourseHome/index.htm OCW site for 6.111 Introductory Digital Systems, 2006] &amp;lt;br&amp;gt;&lt;br /&gt;
==== General Resources ====&lt;br /&gt;
[http://www.opencircuitdesign.com/ Open Circuit Design] Open Source design tools &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.doulos.com/knowhow/ Doulos Digital Design Resources] Good learning and design references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.asic-world.com/ ASIC World] Good learning references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.fpga4fun.com/ FPGA4Fun] Lots of available IP &amp;lt;br&amp;gt;&lt;br /&gt;
[http://academic.csuohio.edu/chu_p/rtl/fpga_vlog.html Companion website for Professor Pong Chu&#039;s Verilog Book] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.opencores.org OpenCores] Very good repository for IP.  Also the home to the OpenRISC System on Chip project &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Suppliers&amp;diff=2278</id>
		<title>Suppliers</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Suppliers&amp;diff=2278"/>
		<updated>2009-10-04T17:10:06Z</updated>

		<summary type="html">&lt;p&gt;Mml: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Purpose of this page ==&lt;br /&gt;
&lt;br /&gt;
List of suppliers for various materials and items and user reviews.&lt;br /&gt;
&lt;br /&gt;
Please add new suppliers and user comment lines (with attribution / date)&lt;br /&gt;
Suppliers can be rated by in the user comment lines. &lt;br /&gt;
Convention is [1] = worst, [5] = best&lt;br /&gt;
&lt;br /&gt;
== Electronics ==&lt;br /&gt;
&lt;br /&gt;
*  [http://www.mouser.com Mouser Electronics]&lt;br /&gt;
** [4] Very complete line of electronics parts. Good searchability, fast service, decent prices on parts. Tools and some other items are expensive (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.digikey.com DigiKey] &lt;br /&gt;
** [3] Very complete line of electronics parts. I find it harder to navigate than Mouser, and more expensive. I generally don&#039;t use them unless I can&#039;t find something elsewhere (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
*  [http://avnetexpress.avnet.com Avnet Electronics Marketing] &lt;br /&gt;
** [4] US electronics parts distributor, like Mouser or DigiKey.  Good searchability.  Avnet Inc. also offers consulting, design, and FAE services (will 10/02/09).&lt;br /&gt;
&lt;br /&gt;
* [http://www.jameco.com/ Jameco]&lt;br /&gt;
** [3] Well known supplier - reasonably complete line (not as complete as Mouser, Digi-key, Avnet), some prices are very good. (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://ledz.com/ Hebei (China)] LEDs only&lt;br /&gt;
** [5] Best prices on LEDs I&#039;ve found - but does have a $199 minimum (see Buy LEDs Online for smaller orders). Ship fast. Worked through a problem with them and they handled me fairly. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.buy-leds-online.com/Products.html Buy LEDs Online] LEDs only&lt;br /&gt;
** [4] US distributor for Hebei. Same stuff. Prices are more expensive but no minimum. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.moderndevice.com/ Modern Device] &lt;br /&gt;
** These guys have pretty good arduino clones, the Bare-Bones-Board and the Really-Bare-Bones-Board, kits from about $10.  Fast &amp;amp; cheap shipping, good customer service.  (jackson 10/02/09 -- did a bulk order from them.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.mpja.com/ MPJA - Marlin P Jones Associates] Surplus&lt;br /&gt;
** [5] Great surplus. Nice printed catalog, Some specials are really good deals. (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.semiconductorstore.com/ Semiconductor Store]&lt;br /&gt;
** Esoteric electronics, like Nordic ANT radios, some robotics parts. Some parts can have high minimums (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.allelectronics.com/ All Electronics] Surplus&lt;br /&gt;
** [4] Nice bargain bin to hunt around in. Not very complete line of parts, but some very good buys. (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.73.com/ Surplus Traders] Surplus&lt;br /&gt;
** [4] Great prices, particularly in the Extreme Specials section. Run by Ted Duskes, who&#039;s a square dealer, and willing to negotiate. Bad news: something like a $100 minimum, and the website is horrible. (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.elexp.com/ Electronix Express (a division of RSR Electronics)] Surplus&lt;br /&gt;
** [3] Better selection than some other surplus catalog, prices vary. Good selection and prices on breadboards (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.goldmine-elec.com/ Electronics Goldmine]&lt;br /&gt;
** Discounts on SMT components, and often has cool weird stuff like IC masks and wafers. Special robot section. (dan 05/03/09 via gareth&#039;s article via alden)&lt;br /&gt;
&lt;br /&gt;
== Mechanical Parts &amp;amp; Fabrication ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcmaster.com/ McMaster-Carr]&lt;br /&gt;
** Very complete line of mechanical parts. Good service. Pricing can often be beat if you hunt around. (alden 10/4/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.smallparts.com/ Small Parts]&lt;br /&gt;
** [4] Wild selection of esoteric parts. Stockouts common, but otherwise good services (alden 10/04/09]&lt;br /&gt;
&lt;br /&gt;
* [http://Use-Enco.com Enco] &lt;br /&gt;
** [3] Very complete source for machine tooling, can be expensive. Online specials (Hot Deals) can be good deals, however. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.harborfreight.com Harbor Freight] &lt;br /&gt;
** [3] Some things are really cheap. Others are just &amp;quot;cheap&amp;quot;. Not good for precision equipment such as lathes, rotary tables, etc. Still useful, however (alden 10/02/09)&lt;br /&gt;
** There is a [http://www.harborfreight.com/cpi/ctaf/retail_stores.taf retail store] in Laurel, MD and another in Woodbridge, VA.&lt;br /&gt;
&lt;br /&gt;
* [http://grizzly.com/ Grizzly Industrial]&lt;br /&gt;
** [4] Good source for machine tools themselves and some limited parts. See Enco for more complete parts and supplies (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.emachineshop.com/ eMachineshop]&lt;br /&gt;
** [4] Will machine parts from proprietary CAD drawing package. I had a very satisfactory experience with them on a 200-part run. Can be expensive for very short runs (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cdcotools.com/index.php CDCO Machinery Corporation]&lt;br /&gt;
** [4] Nice selection of machining tools and parts, good prices (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://littlemachineshop.com/ Little Machine Shop]&lt;br /&gt;
** Well known source for small CNC parts, machinging tools and parts (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
== Plastics ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.estreetplastics.com eStreet Plastics] &lt;br /&gt;
** [4] Acrylics, etc. Very good prices and good for small quantities (e.g. 1 foot lengths of tuning, etc. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.delviesplastics.com/ Delvies Plastics]&lt;br /&gt;
** [4] Acrylics, casting supplies. Good prices, shipping is OK, but not lightning fast. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.tapplastics.com/ TAP Plastics]&lt;br /&gt;
** [3] Acrylics, casting supplies. Good selection, services; somewhat more expensive than some other suppliers (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://aeromarineplastics.com AeroMarineProducts, Inc. (john@jgreer.com)]&lt;br /&gt;
** [5] Resin casting supplies. Got to love this place. One guy, very cheap prices, good delivery (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
== Metals ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.metalsdepot.com Metals Depot] &lt;br /&gt;
** [5] This has been a great find. Small quantities of steel, aluminum, etc; cheap prices, reasonable shipping, good service. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.speedymetals.com/ Speedy Metals] &lt;br /&gt;
** [4] Good second choice to Metals Depot. Somewhat larger selection, somewhat higher prices. (alden 10/02/09)&lt;br /&gt;
&lt;br /&gt;
== Printed Circuit Boards ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.4pcb.com/index.htm Advanced Circuits] &lt;br /&gt;
** [4] Reliable, quality fabrication, prices vary. Decent prices on bare-bones prototypes. Other volumes may or may not be competitive. I&#039;ve ordered many times (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.custompcb.com/ Custom PCB, aka Silvtronics] &lt;br /&gt;
** [3] Very cheap offshore (Malaysia). Not as good quality as others - hole alignment, plating finish..., but may be OK for simpler applications. (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.expresspcb.com/ Express PCB]&lt;br /&gt;
** [3] Prototyping shop with good prices. Has an easy-to-use, proprietary drawing package. At some point you&#039;ll want Gerber files and outgrow these guys (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.goldphoenixpcb.biz/ Gold Phoenix]&lt;br /&gt;
** A lot of people use this company. I have no experience with them to comment (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.sunstone.com/products-services/quickturn-proto-boards/pricing.aspx Sunstone]&lt;br /&gt;
** [2] I never used them as they always price out higher than the alternatives. (alden 10/03/09)&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.uline.com/ Uline Shipping Supplies]&lt;br /&gt;
** [4] Every kind of box, bag, tube, pallet, etc. imaginable. Highly reliable. Prices reasonable in quantity, somewhat more expensive in small Q&#039;s (alden 10/04/08)&lt;br /&gt;
&lt;br /&gt;
* [http://www.globalindustrial.com/ Global Industrial Equipment]&lt;br /&gt;
** [4] Really rangy catalog of industrial equipment. They have some great shelves, benches, bins. Watch out, shipping adds up for heavier items (alden 10/04/09)&lt;br /&gt;
&lt;br /&gt;
* [http://www.gemplers.com/ Gempler&#039;s]&lt;br /&gt;
** [4] Complete catalog of farm and outdoor equipment. See powdered Gatorade gallon bags. (alden 10/04/09]&lt;/div&gt;</summary>
		<author><name>Mml</name></author>
	</entry>
</feed>