<?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=Maitland</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=Maitland"/>
	<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php/Special:Contributions/Maitland"/>
	<updated>2026-05-07T14:03:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshopMaitland&amp;diff=2660</id>
		<title>FPGAWorkshopMaitland</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshopMaitland&amp;diff=2660"/>
		<updated>2009-12-23T21:26:28Z</updated>

		<summary type="html">&lt;p&gt;Maitland: Maitland&amp;#039;s SDR investigations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Port [http://amrad.org/projects/charleston_sdr/ &#039;&#039;&#039;AMRAD Charleston&#039;&#039;&#039;] FPGA loads from Digilent Nexys2 to the Xilinx Spartan3 dev board&lt;br /&gt;
&lt;br /&gt;
2. See if [http://plausible.org/andy/nexys2prog.tar.gz &#039;&#039;&#039;nexsys2prog&#039;&#039;&#039;] can be adapted to support these boards and allow [http://packages.debian.org/squeeze/urjtag &#039;&#039;&#039;UrJTAG&#039;&#039;&#039;] to work.&lt;br /&gt;
&lt;br /&gt;
3. Try to mimic a USRP only using AMRAD Charleston receiver boards. (Or audio ADC.)&lt;br /&gt;
&lt;br /&gt;
4. Look into [http://www.digitalif.org/ &#039;&#039;&#039;VITA Radio Transport (VRT) protocol&#039;&#039;&#039;] support&lt;br /&gt;
&lt;br /&gt;
5. Make use of the Ethernet port, possibly mimic a USRP2.&lt;/div&gt;</summary>
		<author><name>Maitland</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2659</id>
		<title>FPGA Workshop</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2659"/>
		<updated>2009-12-23T21:02:43Z</updated>

		<summary type="html">&lt;p&gt;Maitland: /* FPGA Workshop Projects */&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;]].  Instructions for installing these programs on Mac osX and Ubuntu can be found here: [[FOSS_Verilog_tool_installation | &#039;&#039;&#039;FOSS Verilog tool installation&#039;&#039;&#039;]] &amp;lt;br&amp;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.  Instructions for installing the Xilinx tools on the VM can be found here:[[Xilinx_ISE_Installation_Instructions | &#039;&#039;&#039;Xilinx ISE Installation Instructions&#039;&#039;&#039;]]&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/d931a0f28972e3505eacf8d0bad28fc0/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;
|Make up day&lt;br /&gt;
|&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|4 1/2&lt;br /&gt;
|November 4th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Intro_to_Sequential_Logic.pdf Introduction to Sequential Logic and Flip Flops]&lt;br /&gt;
|[http://projects.hacdc.org/tapemachine/SequentialCircuits.mp3 Audio]&lt;br /&gt;
| Placeholder&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|November 11th, 2009&lt;br /&gt;
|No class meeting with Will&lt;br /&gt;
|[[FPGAExercise5|Different adder construction, shift register and LFSR construction]]&lt;br /&gt;
|[[FPGAExercise5code|4 bit counter code from group hacking session]]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|November 18th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:FPGAWeek6.pdf DFFs round 2, Testbenches]&lt;br /&gt;
[[FPGAWeek6Followup|Notes on the use of Define statements, tasks and events]]&lt;br /&gt;
|Shift Register &amp;amp; LFSR examples from week 5&lt;br /&gt;
|[[FPGAExercise6code|Shift Register, SR Testbench, LFSR, LFSR Testbench]]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|November 25th, 2009&lt;br /&gt;
|[[Xilinx_ISE_Installation_Instructions|Xilinx tool install party]]&lt;br /&gt;
|[[FPGA_Workshop#Xilinx_Links| Xilinx ISE In-Depth Tutorial]]&lt;br /&gt;
|See Tutorial&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|December 2nd, 2009&lt;br /&gt;
|&lt;br /&gt;
[http://wiki.hacdc.org/index.php/File:Week8_fsm_notes.pdf Finite State Machines]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.hacdc.org/index.php/File:Week8_clocking_notes.pdf Clocking Notes]&lt;br /&gt;
|Vending Machine Simulation from notes&lt;br /&gt;
|[[FPGAExercise8code|FSM level-to-pulse converter, testbench]]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|December 9th, 2009&lt;br /&gt;
|We talked about stuff&lt;br /&gt;
|[http://wiki.hacdc.org/index.php?title=FPGA_Workshop#FPGA_Workshop_Projects People start posting project ideas]&lt;br /&gt;
|[http://www.google.com/search?q=fpga+project+ideas Solutions]&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 16th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Week10_programmable_fabric.pdf Introduction to FPGAs - History, Capabilities and Features]&lt;br /&gt;
|Exploring designs and FPGA tools&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 23rd, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:ISE_Tutorial_for_S3E.pdf ISE Tutorial for Spartan 3E board]&lt;br /&gt;
|[[FPGAExercise10code | Counter Source ]]&lt;br /&gt;
|Video of HacDC FPGA blinkenlites&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;
&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/ &#039;&#039;&#039;ASIC World&#039;&#039;&#039;] Good learning references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.play-hookey.com/digital/ Play Hookey Digital Design] Good learning references &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.fpga4fun.com/ &#039;&#039;&#039;FPGA4Fun&#039;&#039;] 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 &#039;&#039;&#039;OpenCores&#039;&#039;&#039;] Very good repository for IP.  Also the home to the OpenRISC System on Chip project &amp;lt;br&amp;gt;&lt;br /&gt;
[http://hdlplanet.tripod.com/verilog/verilog-manual.html#RTFToC0 Bucknell Handbook on Verilog HDL] (Martin found this) Old but useful? &amp;lt;br&amp;gt;&lt;br /&gt;
[http://verilog.openhpsdr.org/ KD7IRS&#039;s Verilog - OpenHPSDR - Lectures] Webcast style class, with lab  &amp;lt;br&amp;gt;&lt;br /&gt;
&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;
&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.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;
==== Xilinx Links ====&lt;br /&gt;
[http://www.xilinx.com/support/techsup/tutorials/ Xilinx Tutorials] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/techsup/tutorials/tutorials10.htm Xilinx ISE 10.1 Tutorial and files] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/direct/ise10_tutorials/ise10tut.pdf ISE 10.1 In Depth Tutorial Direct link to PDF] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/documentation/index.htm Xilinx Documentation]  This includes device data sheets, user guides, IP documentation and Xilinx software manuals &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/tools/designtools.htm Xilinx Design Tools] Xilnx Software tools can be found here &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US-G.htm Spatan 3E Starter Kit] Site for the Spartan 3E kit &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm Spartan 3AN Starter Kit] Site for the Spartan 3AN kit &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/training/free-courses.htm Free Video Training courses] Name says it all &amp;lt;br&amp;gt;&lt;br /&gt;
[http://xess.com/appnotes/ise-10.pdf Yet Another Xilinx ISE 10.1 Tutorial] For Xess Spartan-3 Development Board &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;
NOTE: Xilinx has donated 15 spartan3 boards, which should arrive before 12/7&lt;br /&gt;
&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;
* Tim F (smilemoose@gmail.com)&lt;br /&gt;
* Nick&lt;br /&gt;
* Brian&lt;br /&gt;
&lt;br /&gt;
* Elliot&lt;br /&gt;
* Justin&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;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FPGA Workshop Projects ==&lt;br /&gt;
List of FPGA projects people are working on at HacDC&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Person&lt;br /&gt;
|Project&lt;br /&gt;
|-&lt;br /&gt;
|William Gibb&lt;br /&gt;
|[http://opencores.org/project,spi_core_dsp_s3ean_kits AD/DA controller for Spartan 3E/3A/3AN Development Kits]&lt;br /&gt;
|-&lt;br /&gt;
|Daniel (obscurite on #hacdc on freenode)&lt;br /&gt;
| [[FPGAWorkshopDaniel |Daniel&#039;s Project (Game of Life w/ Martin &amp;amp; Breakout VGA/LED?)]]&lt;br /&gt;
|-&lt;br /&gt;
|Alden&lt;br /&gt;
| [[FPGAWorkshopAlden | Alden&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Dan Barlow&lt;br /&gt;
| [[FPGAWorkshopBarlow | Barlows&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Navid&lt;br /&gt;
| [[FPGAWorkshopNavid | Navid&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Matt Liggett&lt;br /&gt;
| [[FPGAWorkshopMatt | Matt&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Maitland Bottoms&lt;br /&gt;
| [[FPGAWorkshopMaitland | Maitland&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Ben Peizik (benparse@yahoo.com)&lt;br /&gt;
| [[FPGAWorkshopBen | Ben&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Martin&lt;br /&gt;
| [[FPGAWorkshopMartin | Martin&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Rob Seastrom (rs@seastrom.com)&lt;br /&gt;
| [[FPGAWorkshopJustin | Justin&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Phillip Stewart&lt;br /&gt;
| [[FPGAWorkshopPhillip | Phillip&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Tim F (smilemoose@gmail.com)&lt;br /&gt;
|[[FPGAWorkshopJustin | Tims Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Nick&lt;br /&gt;
|[[FPGAWorkshopNick | Nick&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Brian&lt;br /&gt;
|[[FPGAWorkshopBrian | PROM Burner/Reader]]&lt;br /&gt;
|-&lt;br /&gt;
|Elliot&lt;br /&gt;
|[[FPGAWorkshopElliot | Elliots&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Justin&lt;br /&gt;
|[[FPGAWorkshopJustin | Justin&#039;s Project]]&lt;br /&gt;
|-&lt;br /&gt;
|Arc&lt;br /&gt;
|[[FPGAWorkshopArc | Arcs SMT oven ]]&lt;br /&gt;
|-&lt;br /&gt;
|Davel (DLotts)&lt;br /&gt;
|[[FPGAWorkshopDLotts | Davel&#039;s Project]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]]&lt;br /&gt;
[[Category:FPGAWorkshop]]&lt;/div&gt;</summary>
		<author><name>Maitland</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2546</id>
		<title>FPGA Workshop</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGA_Workshop&amp;diff=2546"/>
		<updated>2009-12-01T23:01:37Z</updated>

		<summary type="html">&lt;p&gt;Maitland: add link to verilog.openhpsdr.org&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;]].  Instructions for installing these programs on Mac osX and Ubuntu can be found here: [[FOSS_Verilog_tool_installation | &#039;&#039;&#039;FOSS Verilog tool installation&#039;&#039;&#039;]] &amp;lt;br&amp;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.  Instructions for installing the Xilinx tools on the VM can be found here:[[Xilinx_ISE_Installation_Instructions | &#039;&#039;&#039;Xilinx ISE Installation Instructions&#039;&#039;&#039;]]&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;]  &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;
|Make up day&lt;br /&gt;
|&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|4 1/2&lt;br /&gt;
|November 4th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:Intro_to_Sequential_Logic.pdf Introduction to Sequential Logic and Flip Flops]&lt;br /&gt;
|[http://projects.hacdc.org/tapemachine/SequentialCircuits.mp3 Audio]&lt;br /&gt;
| Placeholder&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|November 11th, 2009&lt;br /&gt;
|No class meeting with Will&lt;br /&gt;
|[[FPGAExercise5|Different adder construction, shift register and LFSR construction]]&lt;br /&gt;
|[[FPGAExercise5code|4 bit counter code from group hacking session]]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|November 18th, 2009&lt;br /&gt;
|[http://wiki.hacdc.org/index.php/File:FPGAWeek6.pdf DFFs round 2, Testbenches]&lt;br /&gt;
[[FPGAWeek6Followup|Notes on the use of Define statements, tasks and events]]&lt;br /&gt;
|Shift Register &amp;amp; LFSR examples from week 5&lt;br /&gt;
|[[FPGAExercise6code|Shift Register, SR Testbench, LFSR, LFSR Testbench]]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|November 25th, 2009&lt;br /&gt;
|Xilinx tool install party&lt;br /&gt;
|Hello World demo&lt;br /&gt;
|Src for demo&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|December 2nd, 2009&lt;br /&gt;
|Finite State Machines&lt;br /&gt;
|Practical FSM Exercise&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|December 9th, 2009&lt;br /&gt;
|Introduction to FPGAs - History, Capabilities and Features&lt;br /&gt;
|Exploring designs and FPGA tools&lt;br /&gt;
|Solutions&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|December 16th, 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;
&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 &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 &#039;&#039;&#039;OpenCores&#039;&#039;&#039;] Very good repository for IP.  Also the home to the OpenRISC System on Chip project &amp;lt;br&amp;gt;&lt;br /&gt;
[http://hdlplanet.tripod.com/verilog/verilog-manual.html#RTFToC0 Bucknell Handbook on Verilog HDL] (Martin found this) Old but useful? &amp;lt;br&amp;gt;&lt;br /&gt;
[http://verilog.openhpsdr.org/ KD7IRS&#039;s Verilog - OpenHPSDR - Lectures] Webcast style class, with lab  &amp;lt;br&amp;gt;&lt;br /&gt;
&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;
&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.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;
==== Xilinx Links ====&lt;br /&gt;
[http://www.xilinx.com/support/techsup/tutorials/ Xilinx Tutorials] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/techsup/tutorials/tutorials10.htm Xilinx ISE 10.1 Tutorial and files] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/direct/ise10_tutorials/ise10tut.pdf ISE 10.1 In Depth Tutorial Direct link to PDF] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/documentation/index.htm Xilinx Documentation]  This includes device data sheets, user guides, IP documentation and Xilinx software manuals &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/tools/designtools.htm Xilinx Design Tools] Xilnx Software tools can be found here &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US-G.htm Spatan 3E Starter Kit] Site for the Spartan 3E kit &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm Spartan 3AN Starter Kit] Site for the Spartan 3AN kit &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.xilinx.com/support/training/free-courses.htm Free Video Training courses] Name says it all &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;
* Tim F (smilemoose@gmail.com)&lt;br /&gt;
* Nick&lt;br /&gt;
* Brian (bpbri [at] hotmail.com)&lt;br /&gt;
* Elliot&lt;br /&gt;
* Justin&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;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]]&lt;br /&gt;
[[Category:FPGAWorkshop]]&lt;/div&gt;</summary>
		<author><name>Maitland</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Xilinx_ISE_Installation_Instructions&amp;diff=2521</id>
		<title>Xilinx ISE Installation Instructions</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Xilinx_ISE_Installation_Instructions&amp;diff=2521"/>
		<updated>2009-11-25T15:38:38Z</updated>

		<summary type="html">&lt;p&gt;Maitland: amd64 and nexys2prog notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ISE Installation Instructions ==&lt;br /&gt;
# Make sure you have a xilinx.com account&lt;br /&gt;
# Go to Xilinx.com, navigate to their ISE Webpack download page.  Links can be found here [http://www.xilinx.com/tools/webpack.htm &#039;&#039;&#039;ISE Webpack&#039;&#039;&#039;]&lt;br /&gt;
# Once you sign in and register, you&#039;ll be at the Xilinx Entitlement center, and have several options to download software.  On your left, under quick links, there is a link titled &amp;quot;Register and Download 10.1 and earlier software.&amp;quot;&lt;br /&gt;
## You will receive a registration email.  This will contain a registrationID which you&#039;ll need later.  Save this email and keep it handy.&lt;br /&gt;
# Follow the screens to download the ISE Webpack.  You&#039;ll be presented with either downloading the 2.5Gb image or the Webinstall client, which will download the files you&#039;ll need as it installs.  You can choose either, I would recommend grabbing the 2.25Gb tarball.  Instructions will be based on installing from the full tarball.  Expect your vm drive to start growing.&lt;br /&gt;
# By default, your download (webpack_SFD.tar for the full file) will go to your ~/Desktop folder.  Open up a terminal and unpack the tarball.&lt;br /&gt;
##&amp;lt;pre&amp;gt; cd  ~/Desktop &amp;lt;/pre&amp;gt;&lt;br /&gt;
## &amp;lt;pre&amp;gt;tar -xvf webpack_SFD.tar &amp;lt;/pre&amp;gt;&lt;br /&gt;
##This creates the directory ~/Desktop/webpack containing the installation files for the webpack.  These installation files will work for &#039;&#039;&#039;Linux&#039;&#039;&#039; and &#039;&#039;&#039;Windows&#039;&#039;&#039;.&lt;br /&gt;
# Now we&#039;re going to run the installer as root&lt;br /&gt;
##&amp;lt;pre&amp;gt; cd webpack &amp;lt;/pre&amp;gt;&lt;br /&gt;
##&amp;lt;pre&amp;gt; su (password is linux on the vm) &amp;lt;/pre&amp;gt;&lt;br /&gt;
##&amp;lt;pre&amp;gt; ./setup &amp;lt;/pre&amp;gt;&lt;br /&gt;
# During the setup you&#039;ll be prompted for a registrationID.  This is the registrationID in the email you got back in step 3.  Enter it here.&lt;br /&gt;
# You&#039;ll then be presented with terms of service screens.  Agree through them to proceed.&lt;br /&gt;
# Next you&#039;ll be presented with a choice of installation directory.  The default choise, /opt/Xilinx/10.1 is fine&lt;br /&gt;
# Next is installation options  You may as well choose all of them, but you must choose &amp;quot;All FPGA devices except Virtex 4 and Virtex 5&amp;quot; in order to design towards the Spartan 3E boards.  You should be ready for your VM&#039;s disk to grow by 4 more gigs.&lt;br /&gt;
# You&#039;ll then be presented with a set of environmental variables which are set in a settings file for ise.  They can be left at defaults.&lt;br /&gt;
# Select the cable drivers.  Click through to confirm the settings and install the tools.&lt;br /&gt;
## You may uncheck the update feature, if you do not wish to immeadiately update the tools after installation.  This will cause a large download to occur after installation, if it is checked.&lt;br /&gt;
# Wait for the tools to install.  Play cards with a buddy.&lt;br /&gt;
# If you let XilinxUpdate run after installation, it will start up, and you&#039;ll need to tell it you want to download and install the 1.5gb of updates.  Find a buddy and play cards.&lt;br /&gt;
# The cable drivers will fail to build.  A solution for this is forthcoming (just need to test it).&lt;br /&gt;
# You can remove the folder from your desktop.  You may want to keep the tarball around if you need to reinstall.&lt;br /&gt;
## &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; To get out of su&lt;br /&gt;
## &amp;lt;pre&amp;gt; rm -rf ./webpack &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Running the tools==&lt;br /&gt;
# Open up a terminal and type the following commands&lt;br /&gt;
## &amp;lt;pre&amp;gt; cd /opt/Xilinx/10.1/ISE &amp;lt;/pre&amp;gt; &lt;br /&gt;
## &amp;lt;pre&amp;gt; source settings32.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
## &amp;lt;pre&amp;gt; ise &amp;lt;/pre&amp;gt; &lt;br /&gt;
# You will now have launched Xilinx ISE.&lt;br /&gt;
## If this is your first time using Xilinx ISE, you should go through the in-depth tutorial linked to on the [[FPGA_Workshop#Xilinx_Links|mainpage]].&lt;br /&gt;
&lt;br /&gt;
==64 bit install==&lt;br /&gt;
&lt;br /&gt;
If the Xilinx ISE Webpack install file complains about not supporting your 64-bit computer:&lt;br /&gt;
&lt;br /&gt;
The installer is just a shell script, edit out the test.&lt;br /&gt;
&lt;br /&gt;
Since ISE is a 32-bit application, you&#039;ll need 32-bit libraries on your 64-bit system.&lt;br /&gt;
`apt-get install ia32-libs` or equivalent for you distribution to get them. (Debian&lt;br /&gt;
&#039;Lenny&#039; doesn&#039;t have libuuid in its ia32-libs package. You&#039;ll have to scrounge those files&lt;br /&gt;
up from the i386 libuuid1 package yourself. More recently libuuid is included in ia32-libs,&lt;br /&gt;
so this wont be a problem in Debian &#039;Squeeze&#039; and later.) Your 64-bit amd64 box will run&lt;br /&gt;
32-bit i386 binaries just fine.&lt;br /&gt;
&lt;br /&gt;
Run the installer script. Things will work just fine.&lt;br /&gt;
&lt;br /&gt;
==Alternative to Digilent Adept Suite==&lt;br /&gt;
&lt;br /&gt;
Some basics:&lt;br /&gt;
&lt;br /&gt;
USB cable plugged into laptop.  With the Power Select jumper&lt;br /&gt;
in the USB position, turning on the power switch lights the&lt;br /&gt;
red power LED. With the Mode jumper on ROM, the board will&lt;br /&gt;
load the demo code from ROM and light up the 7-segment LED&lt;br /&gt;
displays and the switches will turn on and off the other LEDs.&lt;br /&gt;
The Yellow Done LED lights when the load completes.&lt;br /&gt;
&lt;br /&gt;
With the Mode jumper in the JTAG position the board starts up&lt;br /&gt;
waiting for JTAG data. Yes, there is a JTAG cable header,&lt;br /&gt;
but this setting also works for the USB JTAG interface.&lt;br /&gt;
&lt;br /&gt;
A fine bit of clue: [http://www.edaboard.com/ftopic345414.html &#039;&#039;&#039;Programming Digilent Nexys 2 from Linux&#039;&#039;&#039;] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That leads to the good stuff in&lt;br /&gt;
[http://plausible.org/andy/nexys2prog.tar.gz &#039;&#039;&#039;nexys2prog.tar.gz&#039;&#039;&#039;]&lt;br /&gt;
(Note: UrJTAG is already in a Debian package&lt;br /&gt;
[http://packages.debian.org/squeeze/urjtag])&lt;br /&gt;
This allows one to avoid needing to use the &amp;quot;Digilent Adept Suite&amp;quot;,&lt;br /&gt;
and thus, Windows.&lt;br /&gt;
&lt;br /&gt;
The one can use the Xilinx ISE Webpack to convert some example&lt;br /&gt;
verilog source files into a .bit file, then use the&lt;br /&gt;
nexys2prog to load the board with that .bit file.&lt;br /&gt;
Can even be done on a Debian laptop where the only non-free&lt;br /&gt;
software is the Xilinx ISE Webpack..&lt;br /&gt;
&lt;br /&gt;
Just hit the reset button, and the board is ready to get&lt;br /&gt;
another bitfile load, run nexys2prog and reconfigure the&lt;br /&gt;
hardware on the fly.&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGAWorkshop]]&lt;/div&gt;</summary>
		<author><name>Maitland</name></author>
	</entry>
</feed>