Differences

This shows you the differences between two versions of the page.

Link to this comparison view

xilinx:xnf [2013/01/22 00:42] (current)
Line 1: Line 1:
 +Xilinx Netlist Format (XNF) is a crude HDL used on older FPGAs like the XC2000 in the Xilinx XACTstep toolchain. ​ XNF is fully documented, see the spec for details. ​ [[LCA]] is the equivalent assembly language that it produces.
 +
 +XNF doesn'​t seem to support comments although if you were desperate you could add some metadata to the resulting file. (ex: using user parameters)
 +
 +
 +
 +====== Primitives ======
 +
 +===== Symbols =====
 +
 +Element in design such as NAND gate or FF.  Every symbol has a type and name associated with it.  Names use "/"​ to separate hierarchical levels.
 +
 +Symbols can be a macro that refers to another XNF file.  Creates a hierarchical design that must be flattened using merge tool before making a bitstream.
 +
 +
 +===== Pins =====
 +
 +Pins are I/O on each symbol. ​ Pin names per symbol are unique to a particular device. ​ If referenced in a macro, merge tool selects macro parameters first and then falls back to context.
 +
 +
 +===== Signals =====
 +
 +Connections between multiple pins.  Typically one output to N inputs but can be M outputs to N inputs (ie a bus).  Use "/"​ for hierarchical designs like symbols. ​ Can have same name as symbol although does not imply a relationship. ​ Signal names are unique to a particular device.
 +
 +
 +===== Parameters =====
 +
 +Intended to be input in schematic program as hints/​directives to lower level tools. ​ Can be specified for symbols, signals, or pins.
 +
 +
 +===== VCC/GND =====
 +
 +Any signal may be tagged as VCC/​GND. ​ Power buses are not implicit based on names.
 +
 +
 +===== Delay =====
 +
 +Specifies symbol propagation time.  Can have both an input and an output delay on a single element.
 +
 +
 +====== General format ======
 +
 +ASCII text.  ​
 +
 +
 +===== Records =====
 +
 +Each line is called a "​record"​.  ​
 +Records are terminated by either CR or CR/LF.
 +Maximum record length is 2048 characters.
 +Records contain comma delineated fields.
 +First field is record type, presumably of type string.
 +
 +
 +===== Fields =====
 +
 +Fields are 0-1024 characters. ​ Leading spaces/tabs are generally if not always ignored even on string fields. ​ As , is the field deliminator no field can contain ,.
 +
 +
 +====== Field types ======
 +
 +
 +===== char =====
 +
 +Single non-blank character. ​ Leading/​trailing spaces/tabs ignored.
 +
 +Examples:
 +  * g
 +  * 5
 +Invalid:
 +  * abc
 +
 +
 +===== string =====
 +
 +Any alphanumerics except comma, CR, and LF.  Leading/​trailing spaces/tabs ignored. ​ As such, its not possible to create a string value containing leading or trailing spaces (ex " abc").
 +
 +Examples:
 +  * abc
 +  * 123
 +  * Xilinx XDL and XNF (XXX)
 +Invalid:
 +  * abc,123
 +
 +
 +===== numeric =====
 +
 +Of form 0-9 with optional leading -.  Floating point numbers are not allowed. ​ Leading/​trailing spaces/tabs ignored.
 +
 +Examples:
 +  * 123
 +  * -123
 +Invalid:
 +  * +123
 +  * 12.4
 +
 +
 +===== delay =====
 +
 +Of form [<​rise_ns>​[:<​fall_ns>​]]. ​ file_ns and fall_ns are floating point numbers specifying rise and fall times in nanoseconds. ​ If both are omitted (empty) both have rise/fall of 0 ns.  If :<​fall_ns>​ is omitted it is equal to rise_ns.  ​
 +
 +Used to specify setup and hold times. ​ Can have negative values.
 +
 +Examples:
 +  * 0.5: rise time is 0.5 ns and fall time is 0.5 ns
 +  * 0.7:0.3: rise time is 0.7 ns and fall time is 0.3 ns
 +  * -2
 +Invalid:
 +  * 1ns
 +  * 1:2:3
 +
 +For some reason spec does NOT specify that leading/​trailing spaces/tabs ignored. ​ Is this why it didn't simply specify that all record fields had leading/​trailing spaces/tabs ignored?
 +
 +
 +===== param =====
 +
 +Syntax: <​type>​=<​value>​
 +
 += can also be substituted for a literal <>​. ​ The rest of this section will refer to both as =.  Spaces/tabs before = are ignored.
 +
 +User parameters omit type field. ​ Usually ignored by Xilinx tools. ​ Hack to pass data from one program to another.
 +
 +
 +====== References ======
 +  * Xilinx Netlist Format (XNF) Specification:​ ftp://​ftp.xilinx.com/​pub/​documentation/​xactstep6/​xnfspec.pdf
  
 
xilinx/xnf.txt ยท Last modified: 2013/01/22 00:42 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki