Subscribe to Design News
RSS
Reprints/License
Print
Email

The Lab Rat: FPGA Kit Goes All Out

Jon Titus, Contributing Technical Editor -- Design News, March 4, 2010

The NanoBoard 3000XN used for this review included a Xilinx Spartan-3AN FPGA (XC3S1400AN-4FGG676C). Altium also offers a NanoBoard 3000AL with an Altera Cyclone III FPGA and a NanoBoard 3000LC with a Lattice ECP2 device. Each board gives users memory, and a wide range of devices that include serial, Ethernet, USB, MIDI, RS232 and RS485 ports, ADCs and DACs, relays, an LCD with touch screen, keyboard and mouse interfaces, and speakers. The plastic end pieces provide a rigid frame that stabilizes the board on a table.

The Altium Designer suite of tools comes with the kit and they took about 20 minutes to install. During installation you will get a license that goes with the board, so to use the Altium Designer software, you must have your NB3000 connected to your host PC. The Altium tools will function for 12 months, but users can buy a full perpetual license at any time.  I had the Xilinx ISE 9.1i software and libraries already on my PC, so I did not download any Xilinx software.

Altium has done an excellent job with the NB 3000, its Designer software, and online documentation, examples, videos, and other information. I recommend it highly to engineers interested in or already involved with FPGA-based designs. I could spend an entire summer vacation experimenting with this board and the Altium tools. The NanoBoard 3000 was fun to work with.
   
  FPGA Kit Goes All OutThe Altium Designer screen shows the hierarchy of a project in the left column and the circuit of a counter project in the large area. This view does not show all menu choices or selections.
Click here for a larger version

The old Dell Win XP PC in my lab did not meet the minimum system requirements for the Altium Designer software. But it worked well enough, although some tasks would take less time on a newer computer.

A Difficult Climb to Start

I got off to a rocky start because I couldn't locate the NB3000 documentation or projects and started with a "Getting Started Tutorial" for an earlier NanoBoard. Good NB3000 information exists, as I'll explain later.

The sample project I used creates a shift-register that lights the board's eight LEDs one at a time and then turns them off in the same sequence. The schematic-level design capability and ready-built functional blocks simplified the layout of the circuit without the need for C, VHDL, or Verilog code, although you can use those languages, if you choose. I followed the "old" instructions and got through to the compilation step in about 30 minutes. But when I compiled the circuit, I got an error message, "An invalid target package 'fgg676' was given in the '-p' option value. Please consult the Xilinx Programmable Logic Data Book to find a legal target package."

That didn't sound good because the data book runs to over 450 pages and the error message didn't offer any clues about how to correct my design. To make a long story short: I downloaded and installed the latest Xilinx ISE tools, version 11.4.

At this point, though, the Altium Designer displayed, "Xilinx ISE could not be found," which gave no clue about how to solve the problem.  After several lengthy clean-outs and re-installations of the Altium Designer and Xilinx ISE 11.4 software I recreated the simple LED example circuit from scratch and tried again.

The error message still appeared, so I contacted the Altium tech-support people and talked with Marty Hauff. He explained the problem might exist in the Windows XP "environment variables," located at Control Panel-->System-->Advanced-->Environment Variables. In the System Variables window, no information existed for the Xilinx ISE, so I had to add: C:\Xilinx\11.1\ISE

Although the latest version of the Xilinx ISE tools is named 11.4, the tools are still basically version 11.1 with some updates, so the above path is correct, and it worked. (Aargh, Windows!)

 Note that Altium labels the Designer software with a season and a year, for example, Altium Designer Summer 2009, the version I used for this review. Altium uses the Winter, Spring, Summer, Fall sequence of seasons within a calendar year, so Summer 2009 is the latest version, not Winter 2009.
   
  FPGA Kit Goes All OutThis schematic diagram shows a few of the standard drag-and-drop logic functions - gates, J-K flip-flops, a shift register, a demultiplexer and a PWM - used in an 8-bit counter project.
Click here for a larger version

This change fixed the problems and the LED circuit went through the download-to-FPGA steps.  At last, the LEDs lit, but they flashed at the 50-MHz clock frequency. Designers can change the clock signal's frequency, but not to a frequency low enough to see the LEDs flash.

Flash the LEDs at a Slower Rate

Marty explained how to add a "soft instrument" to the design, so under his guidance I selected a Frequency Generator function and placed it on top of the "conductor," or "net" for the clock signal. It inserted itself in the circuit.


Now, when I loaded the project into the FPGA, I could see a Frequency Generator block in the "Device" window. Clicking on that block opened an instrument window that let me set the input frequency to 50 MHz and the output frequency to 1 Hz. The instrument looks like a rack-mounted signal generator with buttons and a digital frequency display.

You also can select other instruments such as a logic analyzer and a frequency counter.
   
   FPGA Kit Goes All OutThe gray Frequency Generator shown in Figure 2 represents this "soft instrument" that drops a 50-MHz signal to a 1-Hz (or other frequency) signal so a person can see the red or green LEDs turn on or off. After testing, you can remove this type of instrument.

The NB3000 Does Have Good DocumentationI noted earlier I got off to a difficult beginning with getting-started information because I couldn't find NB3000 info and latched onto a project for an earlier board. When I first went to the Altium website, I clicked on Products and then on NanoBoard 3000. The NanoBoard 3000 page includes an introductory video and tabs at the top of the page that offer more information. I didn't realize the images at the bottom of the page would lead to more information. They just looked like nice photos that highlighted what I thought of as marketing information: Training Room, 3D Explore, and Instant Deployment.

Instead, I somehow ended up on the Altium Wiki and went to the "Getting Started Page," and under "Basic design tutorials" clicked on "Getting Started with FPGA Design." I used that exercise, which still provides useful information.

Here's a better route: Go to the Altium website, under Products, click on NanoBoard 3000 and then mouse over the Training Room image and click. Those steps get you to a short video introduction and a list of "Chapters" that provide excellent getting-started information that will take you from a simple LED experiment through using the LCD panel to control LEDs.

Next, from the Altium homepage, go to Community and select TRAININGcenter where you can locate the training manuals Altium's instructors use in courses. More than 100 short videos provide "how-to" information on many design subjects. The company also offers online and in-person training programs for a fee and several free online Web seminars. It would help if the Altium NanoBoard kit information included a short URL for the tutorials so users could find them quickly.

Move to a Higher Level of Design Abstraction

Although the basic projects and tutorials use individual logic components such as gates, inverters, and a shift register, and LEDs and controls on the board, developers also can use the OpenBus architecture and move complete system-level blocks into their workspace. The OpenBus blocks include processor cores, memory controllers, I/O devices, LCD controller, SRAM, USB Host controllers, DMA controllers and other high-level "components," so engineers can quickly design a processor-based circuit. I did not have time to explore this type of design. Interested engineers can learn more by watching the 10-minute video, "NanoBoard 3000: FPGAs were never this much fun!"


Circuit Changes and a Project You Can Use

The board's eight LEDs can produce red, green or blue light, but the basic counter project I worked on controlled only the eight red LEDs. I added a demultiplexer and connected its control input to an unused DIP switch on the board so I could select either the red or the green LEDs. Next I added a pulse-width modulator to control the demultiplexer's enable input so the LEDs don't shine so brightly. (Don't stare at them for long!) The latest generic FPGA logic components includes a PWM with an 8-bit input and a prescaler setting. Find the PWM function in the FPGA Configurable Generic.IntLib library.

The new circuit routes the 50-MHz clock to the PWM's clock input (C), routes the PWM's output to the Enable Input (EI) on the multiplexer, and routes the 8-bit bus from the PWM's input bus D[7..0] to an 8-input-bus-output "bus joiner.  At the joiner, I hardwired the eight inputs to 00000100, which reduced light output.
   
   FPGA Kit Goes All Out

Download the Code

You can download my project files here. Before you use this project, ensure you have the latest version of Altium Designer and the latest version (11.4 and higher) of the Xilinx ISE software. This project used the NanoBoard 3000 with the Xilinx FPGA noted at the start of the review.  I have not tried it with other FPGAs from Lattice or Altera.

On your host PC, go to Program Files-->Altium Designer [season] [year]-->Examples. Create a new folder within the Examples folder and name it "Basic FPGA Design Tutorial." Unzip the downloaded zip file and place the contents in the new folder you just named. Start Altium Designer, go to the File-->Open Project... window and navigate to the Basic FPGA Design Tutorial folder. Locate the file: Simple_Counter.PrjFpg and click on it to load the counter project into Altium Designer. Documentation for this project refers to a previous NanoBoard, but uses the same development steps and basic counter circuit. Find the document here. This multi-part tutorial explains how to develop the circuit from a fresh start. Keep in mind the tutorial does not provide everything you might need to know about the Altium Designer tool.  Hint: When you drag a component into the schematic area, or when you select it in the schematic area, use the spacebar to rotate it.

Try to modify the design so you can program the PWM's 8-bit value with the DIP switches when you press a pushbutton. Select the FPGA NB3000 Port-Plugin.IntLib library instead of the FPGA NB2DSK01 Port-Plugin.IntLib described in the documentation. 

Caution: If you exit Altium Designer and want to restart it, open Windows Task Manager and monitor the shutdown of the dxp.exe "process." If you try to relaunch Designer before this dxp.exe completely closes, you can get error messages and run into problems. Take a break and be patient as dxp.exe closes.

A Search Engine that Doesn't

My one quibble with Altium concerns its website. The Search engine often does not find documents or information on the company's Website. The important "FPGA Generic Library Guide," CR0118, provides an apt example. This document describes the libraries of components and functions.  You can use brute force to find it at:  Community--> Learning guides.  In the Browse Learning Guide column, find FPGA Generic logic, click on it, and you'll find the 450+-page guide.

But use the Altium site-search to find "Generic Library Guide" and it comes up empty handed. Without the quotes, the engine finds 29 pages of information, or about 290 "hits." A search for the document number, CR0118 comes up empty, too. I had better luck with a Google search.
RSS
Reprints/License
Print
Email
Canon Resource Center

Featured Company


Most Recent Resources

Advertisement

Sponsored Content

Technology Marketplace

More Content
  • Blogs

Sherlock Ohms

Sherlock Ohms

Sherlock Ohms
July 28, 2010
The case of the false signals
By Earl Schlenk Back in 1980, we installed a new multi-positioned intercom system...
More

Rob Spiegel

Lead-Free Zone Blog

Rob Spiegel
July 28, 2010
3-D, solder free maybe coming to assembly
A new form of lead-free solder may be on the horizon, according to an article on...
More

Doug Smock

Engineering Materials

Doug Smock
July 27, 2010
NAPCOR Says PET Sorting Systems Aren't Practical
 A dispute is brewing about the recyclability of packaging made from...
More

VIEW ALL BLOGS RSS

Sept '10 LED event - House ad
Advertisement
2010 DN Salary Survey Download Promo
About Design News   |   Advertise with Design News   |   Site Map   |   Contact Us   |   Subscription   |   RSS
© 2010 Canon Communications LLC. All rights reserved.
Use of this Web site is subject to its Terms of Use | Privacy Policy