|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbyucc.jhdl.base.Nameable
byucc.jhdl.base.Node
byucc.jhdl.base.Cell
byucc.jhdl.base.Structural
byucc.jhdl.Logic.LogicGates
byucc.jhdl.Logic.LogicStatic
byucc.jhdl.Logic.Logic
byucc.jhdl.contrib.modgen.Cordicl
Generic width linear CORDIC unit for Xilinx XC4000. The CORDIC is parameterized with respect to wordsize, number of iterations, pipeline depth, and CORDIC function.
For an introduction to CORDIC processors, see Andraka, Ray. A survey of CORDIC algorithms for FPGA based computers.
Field Summary | |
static CellInterface[] |
cell_interface
|
static java.lang.String |
cellname
|
static int |
ROTATIONAL
|
static int |
UNIFIED
|
static int |
VECTOR
|
Fields inherited from class byucc.jhdl.Logic.Logic |
ABOVE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_LEFT, ALIGN_LSB, ALIGN_MSB, ALIGN_RIGHT, ALIGN_TOP, BELOW, DOWN, EAST_OF, LEFT_OF, MAX_PACK, NORTH_OF, ON, ONTOP, ONTOP_OF, RIGHT_OF, SOUTH_OF, TOLEFT, TORIGHT, UNCONSTRAINED, UP, WEST_OF |
Fields inherited from class byucc.jhdl.Logic.LogicGates |
tech_mapper |
Constructor Summary | |
Cordicl(Node parent,
int cordicmode,
boolean registered,
int num_iter,
int pipe_depth,
Wire clk_en,
Wire vec,
Wire xin,
Wire yin,
Wire zin,
Wire xout,
Wire yout,
Wire zout)
Constructor for CORDIC unit |
Method Summary | |
void |
clock()
Users define synchronous behavior in this method using standard JHDL constructs. |
static int[] |
compute(int width,
int num_iterations,
int cordicmode,
int x,
int y,
int z,
int v)
Compute implements the behavior of the CORDIC for behavioral modelling of the circuit |
boolean |
defaultSimulationModelIsBehavioral()
The default simulation model is behavioral. |
java.lang.String |
getCellName()
Access the cell name associated with a derived class. |
void |
propagate()
Users defined propagatable behavior using standard JHDL constructs. |
Methods inherited from class byucc.jhdl.base.Node |
addObservable, addSimulatorCallback, checkAll, delete, getBuildingFlag, getChildren, getChildrenEnumeration, getInstanceName, getParent, getParentCell, getRelatives, getSystem, getWires, optimize, orphanAllowed, printAllChildren, printTree, removeSimulatorCallback, setDefaultClock |
Methods inherited from class byucc.jhdl.base.Nameable |
caseSensitivity, caseSensitivity, disableNameClashChecking, getFullName, getFullNameNoTestBench, getHierNameNoTestBench, getInstanceNo, getInstanceNumber, getLeafName, getLeafName, getRelativeName, getUserName, getUserName, hasUserSpecifiedName, isDescendantOf, setInstanceNumber |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static CellInterface[] cell_interface
public static final java.lang.String cellname
public static final int UNIFIED
public static final int ROTATIONAL
public static final int VECTOR
Constructor Detail |
public Cordicl(Node parent, int cordicmode, boolean registered, int num_iter, int pipe_depth, Wire clk_en, Wire vec, Wire xin, Wire yin, Wire zin, Wire xout, Wire yout, Wire zout)
parent
- Parent of this circuitcordicmode
- Cordic.UNIFIED,Cordic.ROTATIONAL, or Cordic.VECTOR.
UNIFIED will do both
modes of operation, with the control signal passed on the vec wire
(1 for vector mode, 0 for rotational mode). Vector mode will do
z0-y0/x0 (ratios <1), Rotational mode does y0+x0*z0.registered
- True to add registers to the CORDICnum_iter
- Number of iterations to build. The maximum is wordsize-1pipe_depth
- Number of iterations per pipeline register. 1 for
fully pipelined. This parameter has no meaning if registered = false.clk_en
- Clock enable wire for the registers.vec
- Control wire for Unified mode CORDICxin
- X inputyin
- Y inputzin
- Angle inputxout
- X outputyout
- Y outputzout
- Angle outputMethod Detail |
public java.lang.String getCellName()
Cell
getCellName
in class Cell
public boolean defaultSimulationModelIsBehavioral()
defaultSimulationModelIsBehavioral
in class Structural
public static int[] compute(int width, int num_iterations, int cordicmode, int x, int y, int z, int v)
width
- Wordsize of the CORDICnum_iterations
- Number of iterationscordicmode
- Cordic.UNIFIED, Cordic.ROTATIONAL, or Cordic.VECTOR. See constructor for
details.x
- X input.y
- Y input.z
- Angle input.v
- Control signal for unified mode.
public void propagate()
Structural
propagate
in interface byucc.jhdl.base.Propagateable
propagate
in class Structural
public void clock()
Structural
clock
in interface Clockable
clock
in class Structural
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |