Color Space Converter MegaCore Function User Guide April 2001

Color Space Converter
MegaCore Function
User Guide
April 2001
Core Version 2.0.0
101 Innovation Drive
San Jose, CA 95134
(408) 544-7000
http://www.altera.com
A-UG-CSCONVERTER-1.0
Color Space Converter MegaCore Function User Guide
Altera, ACEX, APEX, APEX 20K, APEX 20KE, FLEX, FLEX 10KE, MAX+PLUS II, MegaCore, MegaWizard, OpenCore, and
Quartus II are trademarks and/or service marks of Altera Corporation in the United States and other countries. Altera
Corporation acknowledges the trademarks of other organizations for their respective products or services mentioned in this
document, including the following: Verilog is a registered trademark of Cadence Design Systems, Incorporated. Java is a
trademark of Sun Microsystems Inc. ModelSim is a trademark of Model Technologies. MATLAB is a registered trademark of the
MathWorks. Microsoft is a registered trademark and Windows is a trademark of Microsoft Corporation. Altera products are
protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants
performance of its semiconductor products to current specifications in accordance with Altera’s standard
warranty, but reserves the right to make changes to any products and services at any time without notice. Altera
assumes no responsibility or liability arising out of the application or use of any information, product, or service
described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to
obtain the latest version of device specifications before relying on any published information and before placing
orders for products or services.
Copyright  2001 Altera Corporation. All rights reserved.
ii
Altera Corporation
About this User Guide
User Guide
This user guide provides comprehensive information about the Altera®
color space converter MegaCore® function.
Table 1 shows the user guide revision history.
Table 1. Revision History
Revision
1.0
How to Find
Information
Altera Corporation
Date
April 23, 2001
Description
Version 1.0 of the user guide.
The Adobe Acrobat Find feature allows you to search the contents of
a PDF file. Click the binoculars icon in the top toolbar to open the Find
dialog box.
Bookmarks serve as an additional table of contents.
Thumbnail icons, which provide miniature previews of each page,
provide a link to the pages.
Numerous links, shown in green text, allow you to jump to related
information.
iii
About this User Guide
Color Space Converter MegaCore Function User Guide
How to Contact
Altera
For the most up-to-date information about Altera products, go to the
Altera world-wide web site at http://www.altera.com.
For additional information about Altera products, consult the sources
shown in Table 2.
Table 2. How to Contact Altera
Information Type
Access
USA & Canada
All Other Locations
Altera Literature
Services
Electronic mail
lit_req@altera.com (1)
lit_req@altera.com (1)
Non-technical
customer service
Telephone hotline
(800) SOS-EPLD
(408) 544-7000
(7:30 a.m. to 5:30 p.m.
Pacific Time)
Fax
(408) 544-7606
(408) 544-7606
Telephone hotline
(800) 800-EPLD
(6:00 a.m. to 6:00 p.m.
Pacific Time)
(408) 544-7000 (1)
(7:30 a.m. to 5:30 p.m.
Pacific Time)
Fax
(408) 544-6401
(408) 544-6401 (1)
Electronic mail
dsp@altera.com
dsp@altera.com
FTP site
ftp.altera.com
ftp.altera.com
Telephone
(408) 544-7104
(408) 544-7104 (1)
World-wide web site
http://www.altera.com
http://www.altera.com
Technical support
General product
information
Note:
(1)
iv
You can also contact your local Altera sales office or sales representative.
Altera Corporation
Color Space Converter MegaCore Function User Guide
Typographic
Conventions
About this User Guide
The Color Space Converter MegaCore Function User Guide uses the
typographic conventions shown in Table 3.
Table 3. Conventions
Visual Cue
Meaning
Bold Type with Initial
Capital Letters
Command names, dialog box titles, checkbox options, and dialog box options are
shown in bold, initial capital letters. Example: Save As dialog box.
Bold type
External timing parameters, directory names, project names, disk drive names,
filenames, filename extensions, and software utility names are shown in bold type.
Examples: fMAX, \maxplus2 directory, d: drive, chiptrip.gdf file.
Bold italic type
Book titles are shown in bold italic type with initial capital letters. Example:
1999 Device Data Book.
Italic Type with Initial
Capital Letters
Document titles are shown in italic type with initial capital letters. Example: AN 75
(High-Speed Board Design).
Italic type
Internal timing parameters and variables are shown in italic type. Examples: tPIA, n + 1.
Variable names are enclosed in angle brackets (< >) and shown in italic type. Example:
<file name>, <project name>.pof file.
Initial Capital Letters
Keyboard keys and menu names are shown with initial capital letters. Examples:
Delete key, the Options menu.
“Subheading Title”
References to sections within a document and titles of Quartus and MAX+PLUS II Help
topics are shown in quotation marks. Example: “Configuring a FLEX 10K or FLEX 8000
Device with the BitBlaster™ Download Cable.”
Courier type
Signal and port names are shown in lowercase Courier type. Examples: data1, tdi,
input. Active-low signals are denoted by suffix _n, e.g., reset_n.
Anything that must be typed exactly as it appears is shown in Courier type. For
example: c:\max2work\tutorial\chiptrip.gdf. Also, sections of an actual
file, such as a Report File, references to parts of files (e.g., the AHDL keyword
SUBDESIGN), as well as logic function names (e.g., TRI) are shown in Courier.
1., 2., 3., and a., b., c.,... Numbered steps are used in a list of items when the sequence of the items is
important, such as the steps listed in a procedure.
Bullets are used in a list of items when the sequence of the items is not important.
v
The checkmark indicates a procedure that consists of one step only.
1
The hand points to information that requires special attention.
r
The angled arrow indicates you should press the Enter key.
f
The feet direct you to more information on a particular topic.
Altera Corporation
v
Notes:
Contents
User Guide
About this User Guide ............................................................................iii
How to Find Information ......................................................................................................... iii
How to Contact Altera ...............................................................................................................iv
Typographic Conventions .......................................................................................................... v
Specifications ......................................................................................9
Features .......................................................................................................................................... 9
General Description ..................................................................................................................... 9
Functional Description .............................................................................................................. 10
Signals .......................................................................................................................................... 10
MegaWizard Plug-In ................................................................................................................. 10
Performance ................................................................................................................................ 11
Getting Started ................................................................................... 13
Download & Install the Function ............................................................................................. 14
Download the Function ..................................................................................................... 14
Installing the MegaCore Files ........................................................................................... 14
Generating a Custom Color Space Converter MegaCore .................................................... 15
MATLAB Simulation ......................................................................................................... 19
Compiling & Simulating in the Quartus Software ........................................................ 19
Compiling & Simulating in the MAX+PLUS II Software ............................................. 19
Performing Synthesis, Compilation & Post-Routing Simulation ................................ 20
For the Quartus II Software ...................................................................................... 20
For the MAX+PLUS II Software ............................................................................... 21
Configuring a Device ................................................................................................................. 22
References .................................................................................................................................... 22
Altera Corporation
vii
Notes:
Specifications
1
Features
General
Description
Optimized for Altera® devices, including the APEX™, FLEX®,
Mercury™, and ACEX™ device families
Computes one output per clock cycle
Typically runs at clock speeds over 100 MHz
Supports a variety of conversion functions:
–
Studio video R’G’B’ to Y’CbCr
–
Y’CbCr to studio video R’G’B’
–
Computer R’G’B’ to Y’CbCr
–
Y’CbCr to computer R’G’B’
–
Y’IQ to Y’UV
–
Computer R’G’B’ to Y’UV
–
Y’UV to computer R’G’B’
–
User-specified conversion constants
Supports signed and unsigned input data widths from 2 to 32 bits
Provides user-selectable output precision via parameterizable
rounding, saturation, and truncation
Generates bit- and cycle-accurate MATLAB models to aid in systemlevel design and analysis
Generates MAX+PLUS® II and Quartus™ II vector stimulus files
Color space conversion is often necessary when transferring data between
devices that use different color space models. For example, to transfer a
television image to a computer monitor, you may need to convert the
image from the Y’CrCb color space to the R’G’B’ color space. Conversely,
transferring an image from a computer display to a television set may
require a transformation from the R’G’B’ color space to the Y’CrCb color
space. The Altera color space converter MegaCore function can be used to
perform these types of color transformations for a variety of applications
including image filtering, machine vision, and digital video.
A 3-dimensional color space is defined as a mathematical representation
of a set of colors, where each color is mapped to three coordinates. The
Altera color space converter MegaCore function can transform a color
from one 3-dimensional color space to another by multiplying the
tristimulus value by a 3 x 4-matrix transform.
Altera Corporation
9
Specifications
User Guide
Specifications
Functional
Description
Color Space Converter MegaCore Function User Guide
The color space converter uses the following equation to convert data
from one color space to another:
X_OUT
Y_OUT
=
Z_OUT
c11 c12 c13 c14
A
c21 c22 c23 c24
B
c31 c32 c33 c34
C
1
Because the inputs are multiplied by constant values, the look-up table
(LUT) architecture of FLEX 10K, FLEX 10KE, APEX 20K, APEX 20KE,
Mercury, and ACEX devices is ideal for performing the conversion
equations. Pre-computing partial products and storing them in look-up
tables can provide a smaller, faster implementation than one that can be
realized with soft-core multipliers.
Signals
Figure 1 shows the symbol and signals for the color space converter
function.
Figure 1. Color Space Converter Symbol
CLK
X_OUT[ ]
SCLR
Y_OUT[ ]
A[ ]
Z_OUT[ ]
B[ ]
C[ ]
MegaWizard
Plug-In
The color space converter uses an interactive wizard-driven interface to
create a customizable, high-speed, area-efficient function. You can use the
wizard to:
10
Specify values for the transform matrix by either selecting from a set
of standard conversion functions or by manually entering the
coefficients.
Specify the coefficient width, input width, input representation, and
output width. The parameterized coefficient width and input width
allow the user to optimize for speed and area based on the system
requirements.
Optimize the design for performance by specifying input data as
unsigned when applicable.
Altera Corporation
Color Space Converter MegaCore Function User Guide
Specifications
After you have gone through the color space converter wizard, it
generates the following files:
Performance
HDL design file:
–
AHDL Text Design File (<variation name>.tdf)
–
VHDL Design File (<variation name>.vhd)
–
Verilog Design File (<variation name>.v)
Block Design Files <variation name>.bsf for the Quartus II software,
<variation name>.sym and Symbol Files for the MAX+PLUS II
software, which are used to instantiate the function into a schematic
design
<variation name>.inc file (Verilog HDL and AHDL only)
An example core instantiation <variation name>_inst
A component declaration file <variation name>.cmp (for VHDL cores)
A MATLAB testbench <variation name>.m to aid in system level
design and analysis
Table 1 provides the resource utilization and maximum clock frequency
for the computer R’G’B’ to Y’CrCb conversion function. This
implementation uses 8-bit unsigned input ports and 10-bit coefficients.
Table 1. Color Space Converter Performance
Device
Software
Software Settings
LEs Used
fMAX
(MHz)
EPF10K30ETC144-1
MAX+PLUS II Fast global project logic synthesis style
fMAX = 200 MHz
358
172.41
EP1K10TC100-1
MAX+PLUS II Fast global project logic synthesis style
fMAX = 200 MHz
358
185.18
EPF6016ATC100-1
MAX+PLUS II Fast global project logic synthesis style
fMAX = 200 MHz
358
84.47
EPF20K30ETC144-1
Quartus II
fMAX = 200 MHz
380
145.73
EP1M120F484C5ES
Quartus II
fMAX = 200 MHz
380
268.53
Altera Corporation
11
1
Specifications
Limit the output precision by truncating or saturating the MSB
and/or rounding or truncating the LSB using the built-in precision
limiter.
Notes:
Getting Started
User Guide
The design walkthrough involves the following steps:
1.
Obtain and install the color space converter function.
2.
Generate the function for your system using the wizard.
3.
Simulate the filter using the wizard-generated MATLAB M-file.
4.
Implement the rest of your system using the Altera Hardware
Description Language (AHDL), VHDL, Verilog HDL, or schematic
entry.
5.
Compile your design and perform place-and-route.
6.
Perform system verification.
7.
License the color space converter function to configure or program
the devices.
The instructions assume that:
Altera Corporation
You are using a PC.
You are familiar with the Quartus II or MAX+PLUS II software.
MAX+PLUS II version 10.0 or higher is installed in the default
location or Quartus II version 1.0 or higher is installed in the default
location.
13
2
Getting Started
The Altera color space converter function provides solutions for
integrating DSP functions into your digital system. This section describes
how to obtain the color space conversion function, explains how to install
it on your PC, and how to implement a function using the wizard. You can
test-drive MegaCore functions using the Altera OpenCore™ feature to
simulate the functions within your custom logic. When you are ready to
generate programming or configuration files, you should license the
function through the Altera web site or through your local Altera sales
representative. The color space converter is optimized for Altera APEX
20K, APEX 20KE, FLEX, and ACEX devices, greatly enhancing your
productivity by allowing you to focus efforts on the custom logic in the
system.
Getting Started
Color Space Converter MegaCore Function User Guide
Download &
Install the
Function
You are using the MATLAB software version 6.0 R12 or higher.
You are using the OpenCore feature to test-drive the color space
converter or you have licensed the function.
Before you can start using the color space converter, you must obtain the
MegaCore files and install them on your PC. The following instructions
describe this process.
Download the Function
If you have Internet access, you can download MegaCore functions from
the Altera web site at http://www.altera.com. Follow the instructions
below to obtain the MegaCore functions via the Internet. If you do not
have Internet access, you can obtain the MegaCore functions from your
local Altera representative.
1.
Point your web browser to http://www.altera.com/IPmegastore.
2.
Type color space converter in the Keyword Search box of the
IP MegaSearch area and click Go.
3.
Click the link for the color space converter.
4.
Click the line to test-drive the function for free and follow the on-line
instructions to save the function to your hard disk.
Installing the MegaCore Files
To install the files on Windows, follow the instructions below:
14
1.
Click Run (Start menu).
2.
Type <path name>\<filename>.exe, where <path name> is the location
of the downloaded MegaCore function and <filename> is the
filename of the function.
3.
Click OK. The MegaCore Installer dialog box appears. Follow the
on-line instructions to finish installation.
4.
After you have finished installing the MegaCore files, you must
specify the <installation directory>\Color Space Converter-v2.0\lib
directory as a user library in the Quartus II or MAX+PLUS II
software. Search for “User Libraries” in Quartus II or MAX+PLUS II
Help for instructions on how to add these libraries.
Altera Corporation
Color Space Converter MegaCore Function User Guide
Generating a
Custom Color
Space
Converter
MegaCore
Getting Started
This section describes the design flow using the color space converter and
the Quartus II or MAX+PLUS II development system. Altera provides a
MegaWizard Plug-In with the color space converter, which you can use
within the Quartus II or MAX+PLUS II software. The MegaWizard
Plug-In Manager lets you create or modify design files to meet the needs
of your application. You can then instantiate the megafunction variation
in your project. The Altera OpenCore feature allows you to compile and
simulate MegaCore functions in the Quartus II or MAX+PLUS II software,
to evaluate the functions before purchasing a license.
2
To create a variation of the color space converter follow these steps:
Start the MegaWizard Plug-In Manager by choosing the
MegaWizard Plug-In Manager command (Tools menu in the
Quartus II software, File menu in any MAX+PLUS II application).
The MegaWizard Plug-In Manager dialog box is displayed.
1
Refer to Quartus II or MAX+PLUS II Help for more
information on how to use the MegaWizard Plug-In
Manager.
2.
Specify that you want to create a new custom megafunction and
click Next.
3.
Select Color Space Converter in the DSP MegaCore folder. Choose
the language for the output file(s)—either AHDL, VHDL, or
Verilog HDL—and specify a folder, <folder name> and name for the
output file, <variation name>. Click Next to start the wizard (see
Figure 1).
1
Altera Corporation
Getting Started
1.
<variation name> and <folder name> must be the same name
and the same folder that your Quartus II or MAX+PLUS II
project use.
15
Getting Started
Color Space Converter MegaCore Function User Guide
Figure 1. Select the Color Space Converter Function
4.
Specify the bit width of the input data bus. You can also specify
whether the bus is signed or unsigned; the signed representation
uses the two’s complement numbering scheme (see Figure 2). Click
Next.
Figure 2. Specify the Bit Width & Number System
16
Altera Corporation
Color Space Converter MegaCore Function User Guide
5.
Getting Started
Specify the coefficients for your matrix transform. You can select a
predefined conversion function by turning on the Convert between
fundamental color models check box and selecting a predefined
function from the drop-down list box; or you can manually enter
your own custom transform matrix by turning off Convert between
fundamental color models. See Figure 3.
Figure 3. Select the Coefficient Values
2
Getting Started
6.
After you have specified the coefficients, either by selecting a
predefined conversion function or by manually entering them, you
can scale the coefficients. Click Next to continue.
7.
You can specify whether to use full or limited precision for the
converter output (X_OUT, Y_OUT, and Z_OUT). The color space
converter determines the output bit width based on the actual
coefficient values and the input bit width. These two parameters
define the maximum positive and negative output values.
The wizard extrapolates the number of bits required to represent that
range of values. For full precision, you must use this number of bits
in your system. If you choose limited precision, the wizard gives you
the option of truncating or saturating the most significant bit (MSB)
and/or rounding or truncating the least significant bit (LSB).
Saturation and rounding are non-linear operations. See Figure 4.
Make your selections and click Next.
Altera Corporation
17
Getting Started
Color Space Converter MegaCore Function User Guide
Figure 4. Specify the Precision
8.
The wizard displays the files that the wizard will generate. Click
Finish to accept your selections and generate the new megafunction
variation (see Figure 5).
Figure 5. View the
Once you have created a megafunction variation, you can integrate it into
your custom design. After you have finished your design, you are ready
to instantiate it in your system design and compile it.
18
Altera Corporation
Color Space Converter MegaCore Function User Guide
Getting Started
MATLAB Simulation
The color space converter wizard generates a MATLAB script named
<variation name>.m, which provides a set of stimuli to run the bit- and
cycle-accurate MATLAB model. Type the name of the script at the
MATLAB command prompt to run the script. MATLAB displays the
output data on screen.
Compiling & Simulating in the Quartus Software
1.
Click Start Compilation (Processing Menu) to compile your design.
2.
Click Simulation Mode (Processing menu). Choose Simulator
Settings (Processing menu) and select the Time/Vectors tab. Turn off
the Automatically add Pin to Simulation Output Waveforms
option. In the Source of Vector Stimuli box, select <output
name>.vec,where <output name> is the name you specified in the
color space converter wizard. Click OK.
3.
Click Run Simulation (Processing menu) to begin simulation.
Compiling & Simulating in the MAX+PLUS II Software
The following steps explain how to compile and simulate your design in
the MAX+PLUS II software.
Altera Corporation
1.
In the MAX+PLUS II Compiler, turn on Functional SNF Extractor
(Processing menu).
2.
Click Start to compile your design.
3.
Run the MAX+PLUS II Simulator. The Vector File created by the
wizard for your color space converter variation is loaded
automatically. Click Start to begin simulation.
4.
Once simulation has completed, click the Open SCF button to view
the waveform for the design. After you have verified that your
design is functionally correct, you are ready to perform system
verification.
19
2
Getting Started
The following steps explain how to compile and simulate your design in
the Quartus II software, and use the test vector configuration file.
Getting Started
Color Space Converter MegaCore Function User Guide
Performing Synthesis, Compilation & Post-Routing Simulation
The Quartus II and MAX+PLUS II software work seamlessly with tools
from all EDA vendors, including Cadence, Exemplar Logic, Mentor
Graphics, Synopsys, Synplicity, and Viewlogic. After you have licensed
the MegaCore function, you can generate EDIF, VHDL, Verilog HDL, and
Standard Delay Output Files from the Quartus II or MAX+PLUS II
software and use them with your existing EDA tools to perform functional
modeling and post-route simulation of your design.
The following sections describe the design flow to compile and simulate
your MegaCore variation with a third-party EDA tool. To synthesize your
design in a third-party EDA tool and perform post-route simulation,
perform the following steps.
1.
Create your custom design instantiating a color space converter
function.
2.
Synthesize the design using your third party EDA tool. Your EDA
tool should treat the MegaCore instantiation as a black box by either
setting attributes or ignoring the instantiation.
1
For more information on setting compiler options in your
third-party EDA tool, refer to the MAX+PLUS II ACCESS
Interfaces Guidelines.
3.
After compilation, generate a hierarchical netlist file in your thirdparty EDA tool.
4.
Open your netlist file in the Quartus II or MAX+PLUS II software.
For the Quartus II Software
20
1.
Select Compile mode (Processing Menu).
2.
Specify the Compiler settings in the Compiler Settings dialog box
(Processing menu) or use the Compiler Settings wizard.
3.
Specify the user libraries for the project and the order in which the
compiler searches the libraries.
4.
Specify the input settings for the project. Choose EDA Tool Settings
(Project menu). Select Custom EDIF in the Design entry/synthesis
tool list. Click Settings. In the EDA Tool Input Settings dialog box,
make sure that the relevant tool name or option is selected in the
Design Entry/Synthesis Tool list.
Altera Corporation
Color Space Converter MegaCore Function User Guide
Getting Started
5.
Depending on the type of output file you want, specify Verilog HDL
output settings or VHDL output settings in the General Settings
dialog box (Project Menu). Use the 1993 VHDL language option.
6.
Compile your design. The Quartus II Compiler synthesizes and
performs place-and-route on your design, and generates output and
programming files.
7.
Import your Quartus II-generated output files (.edo, .vho, .vo, or
.sdo) into your third-party EDA tool for post-route, device-level, and
system-level simulation.
Getting Started
For the MAX+PLUS II Software
1.
Set your EDIF file as the current project.
2.
Choose EDIF Netlist Reader Settings (Interfaces menu).
3.
In the EDIF Netlist Reader Settings dialog box, select the vendor for
your EDIF netlist file in the Vendor drop-down list box and click
OK.
4.
Make logic option and/or place-and-route assignments for your
custom logic using the commands in the Assign menu.
5.
In the MAX+PLUS II Compiler, make sure Functional SNF Extractor
(Processing menu) is turned off.
6.
Turn on the Verilog Netlist Writer or VHDL Netlist Writer
command (Interfaces menu), depending on the type of output file
you want to use in your third-party simulator. Use the 1993 VHDL
language option.
7.
Compile your design. The MAX+PLUS II Compiler synthesizes and
performs place-and-route on your design, and generates output and
programming files.
8.
Import your MAX+PLUS II-generated output files (.edo, .vho, .vo, or
.sdo) into your third-party EDA tool for post-route, device-level, and
system-level simulation.
1
Altera Corporation
2
For more information on setting compiler options in your thirdparty EDA tool, refer to the MAX+PLUS II ACCESS Key
Guidelines.
21
Getting Started
Color Space Converter MegaCore Function User Guide
Configuring a
Device
After you have compiled and analyzed your design, you are ready to
configure your targeted Altera device. If you are evaluating the MegaCore
function with the OpenCore feature, you must license the function before
you can generate configuration files.
References
Jack, Keith. Video Demystified, A Handbook for the Digital Engineer.
Second Edition. Solana Beach: Hightext Publications, 1996.
This book discusses fundamental computer-video applications, including
color space conversion considerations such as equations, data word
saturation, and data word rounding.
ISBN: 1-878707-23-X (paperback edition), Library of Congress catalog
card number: 96-076446.
22
Altera Corporation