Home
fhlow fast handling of a lot of work
Contents
1. Units defines which architectures of which Units are needed by the demand ing Unit These architectures should be able to be synthesized BhvUnits defines which behavioral architectures of which Units are needed by the Unit These architectures are used for simulation but not for synthesis and place and route CHAPTER 1 USER MANUAL 11 As you can see in Listing the section Dependencies uses complex configuration items exclusively The values of Units and BhvUnits represent paths in the directory structure to the desired Units separated by commas and without the prefixes grp unit and pkg For example unitCpu uses the architecture Rtl of unitDataPath and the architecture Rt1 of unit CoreControl to construct a Prol16 Cpu You only have to specify the direct dependencies because the dependencies of e g unitDataPath are defined in its own configuration file fhlow searches all dependencies recursively and builds an internal dependency tree To define this dependency you have to add DataPath Rt1 and Core Control Rtl to the Units configuration item as shown in lines 2 to 7 of Listing You don t need to tell fhlow in which Group unitDataPath and unit CoreControl are located because they are located in the same Group as unitCpu but it is no fault if your entry looks like Pro116 DataPath Rt1 or Prol16 CoreControl Rt1 If hypothetically unitDataPath is located in grpHypo the entry would look like this Hypo DataPath Rt1 If you
2. gt nodes grp class grp class Listing 1 14 This entry could be made to the config flw file of lt fhlowRoot gt if a Project and Collection level sould be added Do not forget to add the character to NodePrefixes to tell fhlow to completely overwrite this item instead of merging these settings to the default value see section 1 3 2 DoRPWNnNrFOUONtoaw kwnNnr a O 00 CHAPTER 1 USER MANUAL 18 Target Target SandboxX TargetSandboxX Manufacturer Altera Family Cyclone Part EP1C6 Package T144C SpeedGrade 8 Frequencies iClk gt 48 default SimulationLibraries Libraries Cyclone Pins iClk gt PIN_1 true iTestMode gt PIN_2 true iScanEnable gt PIN_113 true inResetAsync gt PIN_114 true iMemData 7 gt PIN_56 true iMemData 4 gt PIN_57 true iMemData 9 gt PIN_58 true Listing 1 15 A sample configuration of a target of configurations In this example the name SandboxX tells fhlow to load the chip specific settings from the configuration section TargetSandbozX This section contains information about the chip itself lines 5 to 9 like the manufacturer the chip family the part the package and the speed grade Line shows the configuration item that sets the frequencies of the clock signals One entry of this complex configuration item is split into three parts the name of
3. this is another comment ComplexItem this is a value this is also a comment aValue 1234 last value Listing 1 6 An example of the configuration file syntax 1 3 2 Syntax The syntax of the configuration files uses sections which are used as name spaces to prevent name conflicts and unwanted overwriting during inheri tance as you can see in Listing 1 6 line llthey are defined by an appropiate name that is sourounded by square brackets lt sectionName gt and two types of items simple This item is a name value pair separated by the symbol Each line can only hold one simple item as you can see in Listing 1 6 in lines Bland 8 complex This item is a name value pair separated by the symbol The value is a list of sub values separated by a semicolon and surrounded by braces and as you can see in Listing 1 6 from line 6 to Comments start with and run to the end of the line they are placed in Units Packages and Libraries use improved configuration items that are basically the same as the simple and complex items described above The difference is the special syntax of the values which can be thought of as a path to the desired leaf in the fhlow structure to define dependencies Units A Unit uses two sections Dependencies and Self to define what is needed to be build this Unit The section Dependencies includes 3 configuration items Packages defines which packages are needed by the Unit
4. Table 1 5 Package file naming convention Libraries The naming conventions for the directory containing the Library are shown in Table pattern lt prefix gt lt libName gt lt prefix gt lib lt libName gt name of the Library characters and numbers examples 1libCyclone libChar_123 Table 1 6 Library directory naming convention There are no naming conventions for the source code files because they are most likely copied from a library of a chip manufacturer But there is one thing you have to take care about the name of the Library This name has to be exactly the same name as you used it in your design to instantiate components or as your place and route program uses for your components fhlow creates a new Library next to the work library with this name 1 3 Configuration 1 3 1 Files Each element node or leaf has its own configuration file named config flw and inherits see Section 1 3 2 for more information its configuration items to 1t s child elements So each leaf contains a configuration object with all configurations of all levels of its branch In addition to these hierarchical configuration files there are a few others They are described in Table 1 7 and All files are loaded in this order 1 default flw 2 lt PluginName gt flw for each Plug in 3 system flw CHAPTER 1 4 user flw USER MANUAL 5 hierarchical configuration files In case of the default structure the order is a co
5. Units This plug in provides its results in the directory var Quartus of the actual top level Unit The command placeandroute also creates the needed files for the post layout simulation net lt UnitName gt lt archName gt ea vhd CHAPTER 1 USER MANUAL 20 Command Line Configuration File Description r run TIME c console o options VAL q quiet b buildall SimulateRun TIME SimlateConsole BOOL SimulateOptions VAL CompileQuiet BOOL CompileBuildAll BOOL Simulation time TIME lt value gt ms us ns ps default value 100 ns Run simulation on command line only BOOL true or false default value false VAL will be passed directly to vsim Makes vcom quiet BOOL may be true or false default value false Rebuilds all sources and li braries which are not recom piled if they exist by default BOOL true or false default value false Table 1 10 Options of the command simulate of the Modelsim plug in Command Line Configuration File Description q quiet o options VAL b buildall CompileQuiet BOOL CompileOptions VAL CompileBuildA11 BOOL Makes vcom quiet BOOL may be true or false default value false VAL will be passed directly to vcom Rebuilds all sources and li braries which are not recom piled if they exist by default BOOL true or false default value false Table 1 11 Options of the command compil
6. c itmemory 3 itRegFile itSpikeFilter LA config flw 3 grpStrobesClocks Ea contig tw a USER MANUAL a Banitepu doc Jit Q YA src Cpu e vhd Cpu Rtl a vhd SUS o 5 JtbCpu Bhv ea vhd wave do x a Modelsim Pwork contig tw b Ne 01 doc Om WEE ZJPront p na Boar Bleontio m c Figure 1 1 a Shows the RootNode blue icon including Group nodes violet icon which include leafs b Shows a Unit a leaf with the prefix unit green icon c Shows a Package a leaf with the prefix pkg green icon Gray icons show dynamically created directories 1 2 1 Naming convention fhlow uses a strict naming convention to keep the structure consistent This also helps you to keep track of your work and simplifies the reuse of Units Packages Libraries and even whole Groups Groups pattern lt prefix gt lt grpName gt lt prefix gt grp lt grpName gt name of the Group characters and numbers examples grpProl16 grpStrobesClocks grpGrpName grp2107 Table 1 1 Group directory naming convention The only naming conventions for Groups is that the corresponding direc tory has the prefix grp followed by a name that may include any sequence of characters and numbers A summary and examples are shown in Table CHAPTER 1 USER MANUAL 5 Units Units use a more complex naming convention than Groups because a Unit a
7. the clock signal iC1k the actual frequency of this clock in MHz 48 and the name of the clock group default To specify the libraries that are needed for the post layout simulation are set using the complex configuration item SimulationLibraries shown in line 15 This item behaves like the complex items in section Dependen cies The pin assignments are done using the complex configuration item Pins An entry of this item is also split in three parts as you can see in line the name of the signal iC1k the name of the pin on the chip PIN_1 and and information if a pull up resistor should be added true to the pin or not false CHAPTER 1 USER MANUAL 19 1 5 Plug ins Plug ins are used to expand the core functionality of fhlow Most likely a plug in is an interface to an EDA program like Mentor Graphics Modelsim or Altera Quartus But in future there should be plug ins that are able to manipulate the directory structure by adding nodes and leafs How you can invoke plug ins is described in Section 1 5 1 Modelsim The plug in Modelsim is an interface to Mentor Graphics Modelsim and is able to compile simulate and to do the post layout simulation plsim of all kinds of leafs which are also the names of the three available commands of this plug in To reproduce a waveform result of a simulation easily you can save the waveform settings of Modelsim to the file wave do in the src directory of the top level leaf of your actu
8. to execute this command under root privileges otherwise you will get an error complaining about missing permis sions on some directories 1 1 4 Plug ins To install some plug ins you have to download the desired plug in pack age from http fhlow lisuna org and extract it to the plug in directory lt fhlowRoot gt flw plugins Each plug in package includes two files All gem files published by projects at RubyForge are included in the RubyGems database CHAPTER 1 USER MANUAL 3 lt PluginName gt rb is the actual plug in lt PluginName gt flw is the default settings files for the plug in These files have to be located directly in the plug in directory If they are located in subdirectories fhlow won t be able to find the plug in 1 2 Directory Structure The directory structure is organized in levels of directories that can be con figured and defined in a configuration file How you can do this is described in Section This section will focus on the default structure shown in Figure fhlow uses directories with prefixes that represent nodes and leafs in a tree like hierarchy Nodes may include other nodes and leafs but leafs in clude neither nodes nor leafs because they represent Units Packages and Libraries These leafs include documentation in the sub directory doc lit erature in the sub directory lit source code in the subdirectory src and dynamically created data from the plug ins like the work library
9. value DUT Table 1 12 Options of the command plsim of the Modelsim plug in Command Line Configuration File Description v verbose LEVEL Verbose LEVEL Affects the output LEVEL 0 1 or 2 default value 0 Table 1 13 Options of the commands synthesize and placeandroute of the Quartus plug in CHAPTER 1 USER MANUAL 22 1 6 Invocation fhlow by now only has a command line interface which is able to invoke all commands registered by the plug ins and print detailed help messages Runlt is a tiny GUI that can be used to start fhlow through mouse clicks instead of invoking it directly from a command line This is mainly targeted at Microsoft Windows users because the command line of Microsoft Windows is not as popular as the terminal programs on GNU Linux systems but Runlt may also be used there The usage of Runlt is described in detail in Section 1 6 2 1 6 1 Command line interface To make the usage of fhlow easier on a command line you should add the bin directory to your PATH environment variable The location of the bin directory depends on the installation method you have used If you have used RubyGems this director is added already to your PATH but if you have used the traditional method the bin directory is located at lt fhlow Root gt f1w core bin Figure 1 4 shows how to set the PATH environment variable on Microsoft Windows systems On GNU Linux systems this de pends on the shell you are usin
10. ANa 1kWNH CHAPTER 1 USER MANUAL 14 section a filename config flw location in a unit iwas added complex unit_1 unit_25 XYZ ow 2 section b name 1234 Listing 1 10 File B e g in a Unit An example configuration file for explaining the inheritance of configuration items filename is overwritten with the same value so in fact is was left untouched location has the default value in a group but was overwrit ten with in a unit iwas added is added because it didn t exist complex has the default value xyz fileb and was enhanced with unit_1 unit_2 xyz was not added a second time ow has the default value 2 which was completely overwritten with O because of the character in line 9 of Listing 1 11 e section b and all its items were added because they didn t exist in the Group Overwriting an inherited configuration item should also be used if you would like to change a default setting default configuration files are shown in Table by making an entry in a configuration file of a higher level with the same name in the same section as the default configuration item but assigning a new value For simple items this is all you need to do but as you saw in the example values of a complex item are merged by default if the same complex item is set in different levels of a branch To really ove
11. RegFile Rtl BhvUnits MyCollection Generic TestBench Bhv Packages no need to add Prol16 Global Math Listing 1 13 The section Dependencies of the configuration file of unitDataPath from Figure 1 3 1 3 4 Customizing the structure If you want to add more levels to the directory structure you have to over write the NodePrefixes item in the section fhlow in the configuration file in the lt fhlowRoot gt node To add for example a Project prefix prj and a Collection prefix col as new top level level 0 nodes and a new container Class next to Group in level 1 the entries would look like Listing The new structure now needs Units Packages and Libraries inside Groups or Classes which are located inside Projects or Collections Because of the different prefixes in the same level e g prj and col it is possible to create a Project and a Collection with the same name e g prjProl16 and colProl16 This is a problem when you have to specify dependencies in the configuration files To define the dependency exactly the entries have to include the prefix use prj Prol16 or col Pro116 instead of just using Prol16 Figure 1 31shows a few leafs and nodes in the new structure and includes 3 paths that should illustrate how to specify the relative dependencies The configuration file of unitDataPath is shown in Listing Changing the prefixes of the leafs or adding more possible leafs is not recommended because you ne
12. a org and extract it using aouohkrwnr CHAPTER 1 USER MANUAL 2 gem install fhlow Attempting local installation of fhlow Local gem file not found fhlowx gem Attempting remote installation of fhlow Updating Gem source index for http gems rubyforge org Successfully installed fhlow 1 91 0 2 Listing 1 1 Command line installation of fhlow using RubyGems tar gzip 7zip winzip or something similar to a directory of your choice This directory will from now on be called lt fhlowRoot gt 1 1 3 Using RubyGems Using Rubys package management system RubyGems will become the de fault way to install fhlow in future This is a short description of RubyGems taken from 6 RubyGems is a standardized packaging and installation frame work for libraries and applications making it easy to locate install upgrade and uninstall Ruby packages It provides users and developers with four main facilities 1 A standardized package format 2 A central repository for hosting packages in this format 3 Installation and management of multiple simultaneously installed versions of the same library 4 End user tools for querying installing uninstalling and otherwise manipulating these packages As fhlow is a RubyForge project using RubyGems for installation is re ally simple Just open a terminal and type gem install fhlow The output will look something like Listing 1 1 On GNU Linux systems you need
13. al simulation You can do this by clicking on the waveform and then using File Save You have to navigate to the src directory by clicking on browse an save the settings using the filename wave do The Tables 1 10 1 11 and 1 12 show the options of the commands which can be applied on the command line or in the configuration files If you run simulate a compilation is done first by calling the command compile To apply options to the compile command invoked by simulate you have to define them in the configuration files To specify the path to the executables of Modelsim and the license the configuration items BinDir and LicenseFile in section Modelsim are used The best location of these settings is the per machine configuration file see section 1 3 1 A post layout simulation of a Unit can only be done if the files lt Unit Name gt sdf which includes the timing informations and net lt UnitName gt lt ArchitectureName gt ea vhd which includes the net list of the design ex ist in the share directory This directory is the subdirectory var share of a Unit These two files are automatically created by a place and route pro gram This simulation also takes care of the manufacturer libraries if they are specified in the section Target lt TargetName gt of a configuration file 1 5 2 Quartus The plug in Quartus is an interface to Altera Quartus and is able to syn thesize and to do the placement and routing placeandroute of all
14. antiations end Bhv Listing 1 4 A cutout of the file tbCpu Bhv ea vhd of unitCpu You can see in Line that the lt unitName gt Cpu with the prefix tb is used as entity name Line 4 shows the usage of lt archName gt Bhv convention is almost equal to the design files but they are marked with the prefix tb unitCpu could have these test bench files e tbCpu e vhd with the need of at least one architecture tbCpu Bhv a vhd and Cpu BhvWithAssertions a vhd e tbCpu Bhv ea vhd which implies that there is only one architecture for the test bench of Cpu The entity name of the test bench inside the VHDL file has to be tb lt unitName gt and the architecture name inside the VHDL file has to be lt archName gt as you can see in Listing 1 4 Table 1 3 shows a summary and some more examples NOOR WNH CHAPTER 1 USER MANUAL 7 patterns lt unitName gt e vhd lt unitName gt lt archName gt a vhd lt unitName gt lt archName gt ea vhd tb lt unitName gt e vhd tb lt unitName gt lt archName gt a vhd tb lt unitName gt lt archName gt ea vhd lt archName gt name of the architecture characters and numbers lt unitName gt name ofthe Unit characters and numbers examples Cpu e vhd Alu Rtl a vhd 6212 Bhv ea vhd tbChar_123 Bhv ea vhd Table 1 3 Unit file naming convention library ieee use ieee std_logic_1164 all use ieee numeric_std all package Proll6 is some constants and components e
15. but the default directory structure was left nearly unchanged This chapter provides a complete and clear user manual of fhlow version 2 for GNU Linux and Microsoft Windows as fhlow behaves much more the same under both operating systems than it used to do 1 1 Installation 1 1 1 Requirements fhlow is written in the interpreted scripting language Ruby so you have to install the Ruby interpreter on your computer It is available for a lot of computer platforms including GNU Linux and Microsoft Windows at 1 Ruby is also shipped with the most GNU Linux distributions so the package database of your distribution should be the first place to look If you can t find it there you should read the official installation documentation 2 Microsoft Windows users should use the One Click Installer which also includes RubyGems see section 1 1 3 for more information For now fhlow is only tested with the version 1 8 of Ruby which is by now the latest stable version and should therefore be used If you d like to use RubyGems to install fhlow you have to install it too This is done by the One Click Installer for Microsoft Windows On GNU Linux systems you could search the package database of your distri bution an install it from there or read the official installation instructions 3 1 1 2 Traditional Way First of all you need to download the newest fhlow version 2 package with the attribute stable version from http fhlow lisun
16. e of the Modelsim plug in and lt UnitName gt sdf which are located in the directory var share of the actual top level Unit The Table 1 13 shows the options of the commands which can be applied either on the command line or in the configuration files To specify the path to the executables of Quartus and the license the configuration items BinDir and LicenseFile in section Quartus are used The best location of these settings is the per machine configuration file see section 1 3 1 CHAPTER 1 USER MANUAL 21 Command Line Configuration File Description r run TIME c console o options VAL q quiet b buildall s sdf VAL 1 tblabel VAL SimulateRun TIME SimlateConsole BOOL SimulateOptions VAL CompileQuiet BOOL CompileBuildAll BOOL PostLayoutSimSDF VAL PostLayoutSimTbLabel VAL Simulation time TIME lt value gt ms us ns ps default value 100 ns Run simulation on command line only BOOL true or false default value false VAL will be passed directly to vsim Makes vcom quiet BOOL may be true or false default value false Rebuilds all sources and li braries which are not recom piled if they exist by default BOOL true or false default value false The timing that should be used from the SDF file VAL max typ or min default value max The label that is used in the testbench for the top level unit VAL a string default
17. ed knowledge about the internal strcuture of fhlow Read the developer documentation if you want to know more about this topic 1 4 Chip specific settings In order to define the target the chip of your design the section Target is used Section 1 15 shows an example how this is done On line 2lthe actual target is defined This is done to easily switch between different sets of target configurations The name that is defined here is used to load the desired set NOR WNH CHAPTER 1 USER MANUAL 17 P lt miowRoot gt Y flw H colMyCollection SD classGeneric oD unitTestBench contig tw contig tw ts unitDataPath wD unitRegFile Econo tw EA classGlobal pkoMath contig tw config flw contig tw Figure 1 3 Shows a few leafs and nodes in the customized directory struc ture defined in Listing 1 14 The magenta path shows the dependency from unitDataPath to unitRegFile which can be specified without adding the Project name and the Group name because they are located in the same Group The blue path shows the dependency from unitDataPath to pkg Math which can be specified without adding the Project name because they are located in the same Project The orange path shows the dependency from unitDataPath to unitTestBench which has to be fully specified because they have no common nodes e Mae fhlow NodePrefixes level 0 gt nodes prj col prj col level 1
18. example a whole grp with a GNU Linux user for whom the capitalisation is very important The next thing to mention is that lt unitName gt does not include the prefix unit So for example possible filenames for unitCpu would be e Cpu e vhd with the need of at least one architecture Cpu Rtl a vhd and Cpu Bhv a vhd e Cpu Rtl ea vhd which implies that there is only one architecture for the Cpu The entity name of a Unit inside the VHDL file has to be lt unitName gt as you can see in Listing and the architecture name inside the VHDL file has to be lt archName gt as you can see in Listing Each Unit may also include a test bench which is also kept in the src subdirectory because they are closely bound to the actual Unit The naming ANa kFWNEH oRWNF QANE CHAPTER 1 USER MANUAL 6 library ieee use ieee std_logic_1164 all library work use work Proll6 all entity Cpu is port port definitions end Cpu Listing 1 2 A cutout of the file Cpu e vhd of unitCpu You can see in Line 7 that the lt unitName gt Cpu is used as entity name architecture Rtl of Cpu is signal definitions begin some entity instantiations end Rtl Listing 1 3 A cutout of the file Cpu Rtl a vhd of unitCpu You can see in Line that the lt unitName gt Cpu and the lt archName gt Rt1 is used entity tbCpu is end tbCpu architecture Bhv of tbCpu is some processes and entity inst
19. fhlow fast handling of a lot of work USERMANUAL 2007 Copyright Simon Lasselsberger Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 2 or any later version published by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License ii Contents 1 User Manual 1 1 Installation ee er ee eee ee ee 1 1 2 Traditional Way so ee a e e 2 ee Be ee e De E ee eee G ads o eels ee a ee Hci le E bs Avie dede cha eo ee ad ae 1 2 1 Naming convention 4 1 3 Configuration 2 2 222 Coon 2 eee 1 3 1 Files RE E Y ie phan ae bade 6 hee de AN A 1 5 Plug ins 1 5 1 Modelsim 2 2 2 0 022 0000 0 200 1 5 2 Quartus 6 2 os 8 bb eee de See be ead 1 6 Invocation 1 6 1 Command line interface 1 6 2 Using Runlt 1 7 Runlt 1 7 1 Overview 2222 2 on 1 7 2 Requirements 2 2 2 2 2 En nn 1 7 3 Installation 2 2 o e nn 1 7 4 Usage Bibliography ii m m Chapter 1 User Manual There were a lot of changes from fhlow version 1 to version 2 when you talk about the internal structure because of the complete rewrite Also the usage and configuration have changed because of usability concerns
20. file of a Library by tbArchitectures in section Self which can have dependencies Those Units are defined by the configuration item Units The Units item of Pack ages includes Units that are able to be synthesized and behavioral Units because a Package can never be synthesized standalone so this item only takes effect for simulation Listing 1 8 shows a typical configuration file of a Package Libraries Libraries typically don t use dependencies either because they are designed to stand alone and only include components You can specify dependencies of the types Units BhvUnits Packages and Libraries if you need to in the configuration section Dependencies But there is only one significant configuration item Files It is located in the section Self and holds the names of the files located in the subdirectory src as you can see in Listing Inheritance It is possible so set configuration items in e g a Group in order to inherit them to all leafs in this Group but it is also possible to overwrite configura tion items from higher levels in the configuration files of lower levels For example if you have set the default values shown in Listing 1 11 in the configuration file of a Group and you have made the settings shown in Listing 1 10lin a Unit in this Group the resulting configuration object of the Unit will look like Listing 1 12 Here is what happens in detail e section a was inherited from the Group to the Unit
21. g if you are using bash 4 this can be done by using this command export PATH PATH fhlowRoot flw core bin If you are using another shell please read the documentation of your shell to find out how to manipulate environment variables Now you are able to invoke fhlow without typing the absolute path to the fhlow executable Listing 1 16 shows how fhlow is invoked on a GNU Linux system using bash as shell but the commands entered in the command line are exactly the same under Microsoft Windows To invoke fhlow you have to type fhlow If this is done in a working directory that is not inside a fhlow structure you ll get an error shown in Listing in the lines 1 to 9 You have to change your working directory to the directory or a subdi rectory of a leaf as you can see in Listing 1 16 in line After you have done this you can type fhlow again and you will see fhlow complaining that you haven t added a command name as argument and the top level help output Listing lines 12 to 46 The help messages are printed by the command help which takes a name of a plug in and optionally the name of a subcommand of the actual plug in as argument and prints the proper help message As partial command matching is used for all commands plug in names and subcommands the shortest distinct name for a command can be used You can see that fhlow help Mc CHAPTER 1 USER MANUAL 23 system properties zixl zjx System Restore Automatic U
22. in the subdirectory var In case of the default structure there are two node levels the RootNode level and the grp level The RootNode has no additional prefix because it represents the directory that contains the structure and is called lt fhlow Root gt of course this directory does not have to have exactly this name you can think of this name as the absolute path to your structure This directory contains so called Groups directory name prefix grp which are collections of leafs that belong together For example the grpPro116 in Fig ure 1 1 a contains leafs Units and a Package that are needed to construct a Proll6 CPU To make this more clear here is a description of the prefixes grp A container that holds leafs and is called a Group unit Represents one VHDLI entity including architectures documentation and literature and is called a Unit pkg Represents one VHDL package including documentation and literature and is called a Package lib Represents one VADL library including documentation and literature and is called a Library Libraries are used for designs that need to instantiate components from it or post layout simulations For each element in the structure there is a configuration file You will find detailed documentation on configuration files in Section CHAPTER 1 P lt miowRoot gt Am Q B grpProl16 PoraProire 2 DunitAlu itCoreControl 3 E itCpu a itDataPath 3
23. lso takes care about the source code of your designs which is located in the src subdirectory As you can see in Figurell 1 b and Table 1 2 the directory that represents a Unit uses the prefix unit followed by any sequence of characters and numbers A Unit represents exactly one VHDL entity pattern lt prefix gt lt unitName gt lt prefix gt unit lt unitName gt name of the Unit characters and numbers examples unitCpu unitAlu unit6212 unitChar_123 Table 1 2 Unit directory naming convention The names of the VHDL source code files are a little bit more com plex than the directory name As you know a VHDL entity needs a dec laration of the entity and it needs one ore more architectures fhlow has two ways to handle this you can separate the entity from the ar chitecture and save them in two different files lt unitName gt e vhd and lt unitName gt lt archName gt a vhd or you can save them both in one sin gle file lt unitName gt lt archName gt ea vhd lt archName gt is exactly the same name as you used inside your VHDL file It is very important that the lt unitName gt used in the filename is equiva lent to the lt unitName gt used in the name of the directory If you use fhlow only under Microsoft Windows the capitalisation of lt unitName gt is not im portant but you should hold your structure consistent not only to keep the structure clean but also because it could happen that you d like to share for
24. n parentheses The name of the Unit and the list of architectures is obligatory but you only have to specify the name of the Group if the dependency is not located in the same Group as the demanding Unit The values of the Packages configuration item in section Dependen cies are also paths in the fhlow structure and underlie the same rules as Units and BhvUnits but they do not use the architecture specification in the parentheses To define the architectures that should be used by the actual Unit itself the section Self see Listing 1 7 line 18 to 23 is used There are 3 items that can be used Architectures define the architectures in a comma separated list that should be used These architectures should be able to be synthesized BhvArchitectures define the architectures in a comma separated list that should be used for simulation only because they contain behavioral VHDL code tbArchitecture defines the architectures of your test bench Packages Packages often don t use dependencies because their only possible depen dencies are other Packages But Packages may have a test bench specified OANa kFWwWNnNrH QANE CHAPTER 1 USER MANUAL 13 Dependencies Packages Units Self tbArchitectures Listing 1 8 The configuration file of pkgPro116 from Figure 1 1 Dependencies Self Files cyclone_atoms vhd cyclone_components vhd Listing 1 9 A typical configuration
25. nally print the log messages to the con sole VAL 1 console error VAL 2 console error warning VAL 3 console error warning info VAL 4 console error warning info debug default value 1 c nocolor disables the ansi color escape sequences for the output a askexit asks for a keystroke when finished h help shows the help message the same as fhlow help v version shows the version of fhlow the same as fhlow version Table 1 14 Options of the fhlow command name simulate tooltip Run_fhlow with arguments lt askexit Modelsim simulate gt app gt terminal fhlow askexit _Modelsim simulate icon gt m sim_simulate xpm Listing 1 17 A sample configuration of a button that starts a simulation using the Modelsim plug in of fhlow This entry can be added to the progs Array in Runlts configuration file 1 6 2 Using Runlt To use Runlt to invoke fhlow you have to edit the configuration file of Runlt Listing 1 17 shows a sample configuration of a button that starts a simulation using the Modelsim plug in The significant part is line 4 where the actual command that should be invoked is set As you can see this is exactly the same command as you would write on the command line to start fhlow If you add the option askexit fhlow will ask you to hit a key before closing the terminal window terminal is a String tha
26. nd Proll6 Listing 1 5 A cutout of the file Prol16 p vhd of pkgProl16 You can see in Line 5 that the lt pkgName gt Pro116 is used Packages Packages are also a little bit more complex than Groups but much simpler than Units because they include less source code files in their src subdi rectory as you can see in Figure 1 1 c The name of the directory that represents a Package is described in Table A package may also include a test bench to verify its correct function pattern lt prefix gt lt pkgName gt lt prefix gt pkg lt pkgName gt name of the Package characters and numbers examples pkgProl16 pkgChar_123 Table 1 4 Package directory naming convention The package source code file uses the pattern lt pkgName gt p vhd Where lt pkgName gt is equal to the lt pkgName gt used for the name of the directory lt pkgName gt has to be used as name of the package inside the VHDL file as well as you can see in Listing 1 5 The test bench files use the same naming conventions as the test bench files of Units Examples and a summary can be found in Table CHAPTER 1 USER MANUAL 8 patterns lt pkgName gt p vhd tb lt pkgName gt e vhd tb lt pkgName gt lt archName gt a vhd tb lt pkgName gt lt archName gt ea vhd lt archName gt name of the architecture characters and numbers lt pkgName gt name of the Package characters and numbers examples Prol16 p vhd Char_123 p vhd tbChar_123 Bhv ea vhd
27. need more than one architecture of a Unit you can add them in the parentheses by separating them with commas DataPath Rt1 Struct Another example is shown in Figure A lt fhlowRoot gt 8 A flw 2 Borprroit 6 j o unitDataPath oD unitRegFile contig tw 3 grpNonSense 3 unitNonSense Ka contig fw contig tw Figure 1 2 The red colored path shows the dependency of unitDataP ath to unitRegFile which can be specified in the configuration files with out adding the Group name because the two Units are located in the same Group RegFile Rt1 The magenta colored path shows the dependency of unitDataPath to unitNonSense which is located in another Group so you have to add the Group name to the configuration file entry NonSense NonSense Rt1 To conclude an entry in Units and BhvUnits of the section Dependen FPOMCANOUBRWNH a pe j on outmwmN NNN WNROO0O CHAPTER 1 USER MANUAL 12 Dependencies Units Rtl2 is used for demonstration of the comma separated list DataPath Rtl Rtl2 CoreControl Rtl BhvUnits memory beh Packages Prol16 Self Rtl2 is used for demonstration of the comma separated list Architectures Rtl Rtl2 BhvArchitectures tbArchitectures Bhv Listing 1 7 The configuration file of unitCpu from Figure cies uses the names of the Groups and Units separated by commas followed by a comma separated list of architectures i
28. nfig flwin lt fhlowRoot gt b config flw in a Group c config flw in a leaf Filename default flw Location next to the fhlow executable depends on the installation method Purpose Includes defaults for the fhlow core Information changing the default behavior is described in Section 1 3 2 Do not make changes to this file Filename lt PluginName gt flw Location lt PluginDir gt Purpose Includes defaults for each Plug in Information changing the default behavior is described in Section 1 3 2 Do not make changes to this file Table 1 7 Default configuration files Filename user flw Location GNU Linux HOME fhlow user flw Microsoft Windows APPDATA fhlow user flw Purpose Per user configuration file Optional Information HOME and APPDATA are environment variables Examples e home user fhlow user flw eC Documents and Settings username Application Data fhlow user flw Filename system flw Location GNU Linux etc fhlow system flw Microsoft Windows ALLUSERSPROFILE Application Data fhlow system flw Purpose Per system configuration file Optional May be used for settings the paths for the tools Information ALLUSERSPROFILE is an environment variable Example C Documents and Settings All Users Application Data fhlow system flw Table 1 8 Additional configuration files O00 Z0D0O0AN0NNA CHAPTER 1 USER MANUAL 10 aSection this is a comment Simpleltem someValue name value
29. oft Windows Runlt can also be started from the command prompt with a command simmilar to this C gt rubyw lt RunItRoot gt bin runit rb ANa FkWwWNnNre CHAPTER 1 USER MANUAL 28 Some Ruby variables binDirectory usr bin defaultOptions v terminal konsole_ e This Array includes information about the buttons progs name gt ls The construct defaultOptions in the line will be sustituted by its value Run lt ls v gt in the workingDirectory tooltip gt Run lt Is A defaultOptions gt _ in workingDirectory app gt terminal binDirectory ls defaultOptions vicon gt ls xpm name gt echo tooltip gt Run lt echo hello world gt app gt terminal binDirectory echo_hello world icon gt echo xpm Listing 1 18 A code snippet from a settings rb file showing the useage of ruby variables and the definition of the progs array You should use rubyw instead of ruby to start the tool because ruby will start a separate command prompt window which is of no use This command can also be used to create a shortcut on your desktop or in your start menu CHAPTER 1 USER MANUAL 29 Parameter Description workingDirectoryLabelRegex workingDirectoryLabelSubstitution Q defaultWorkingDirectory Q progs pr
30. ogs n name progs n tooltip progs n app progs n iconv posx posy This regular expression is used to substitute the directory path with workingDirectoryLabelSubstitution This string is displayed instead of the direc tory path in the text field This is the default working directory This is an Array of Items that represent one button in the GUI The name of the button Listing 1 18 Lines Bland The message that will be displayed when the mouse is hoverd over the button Listing Lines 9 and The command that will be executed when the button is pressed Listing 1 18 Lines 9 and 20 The icon that will be displayed inside the but ton Listing Lines 9 and The x position in pixels The y position in pixels Table 1 15 This table shows the Parameters that are defined in lt RunIt Root gt bin settings rb Bibliography E 1 URL http www ruby lang org abgefragt am 23 05 2007 JRL http www ruby lang org en downloads abgefragt am 3 05 2007 N Na 3 URL http rubygems org read chapter 3 abgefragt am 23 05 2007 4 URL http www gnu org software bash abgefragt am 10 05 2007 5 URL http wxruby rubyforge org abgefragt am 23 05 2007 6 Dave THOMAS CHAD FOWLER A H Porgramming Ruby The Prag matic Programmers Guide Pragmatic Bookshelf 2 ed 2005 30
31. onfigured sources synthesize gt Synthesizes the configured sources help Provide help for individual commands version Show the version of the program lt global options gt 1 loglevel VAL Set the loglevel to VAL c nocolor Disable colorful output a askexit Asks to hit a key before exiting h help Show help v version Show the version of the program 4 722222222 work done PENR AA AE PE E A A AA Be ESSEN user host lt fhlowRoot gt grpProl16 unitCpu fhlow help M c 7777772222222 fhlow fast handling of a lot of work 4 2222 2222 compile Compiles the configured sources Compiles the configured sources Usage fhlow lt global options gt Modelsim compile lt local options gt ARGS lt compile options gt q quiet Make vcom quiet o options VAL Options that will be passed to vcom b buildall Rebuilds all sources and libraries 7 77 work done AAA ARI E OM a AEREA A Listing 1 16 This listing shows the output some fhlow commands on bash NH CHAPTER 1 USER MANUAL 25 Command Line Description 1 loglevel VAL sets the loglevel VAL 3 logfile error VAL 2 logfile error warning VAL 1 logfile error warning info VAL 0 logfile error warning info debug All negative values cause the same logs as VAL 0 in the logfile but additio
32. ore buttons shown in Listing 1 18 The best way to create a new button is to create or download an icon which has to have the xpm format and save it in lt RunItRoot gt bin img Then edit settings rb and add an entry to the progs array Therefore you can define some helper variables in Ruby syntax as you can see in Listing 1 18 in lines 2 to 4 These variables are used to set the directory that contains the executables binDirectory the default options of the programs defaultOptions and the terminal program that should be used for invocation of the programs You need to define a terminal if your program only uses a command line as user interface On GNU Linux CHAPTER 1 USER MANUAL 27 9 BsrunitRoot gt bin Bing m94 open xpm exit xpm e Is xpm E Re echo xpm El Ba runit rb Ra settings rb a Pooc Arunit par COPYING a README Figure 1 5 The directory structure of the Runlt package Systems this could be konsole e or xterm e On Microsoft Windows systems this variable should be set to start for ordinary programs and start ruby for programs written in Ruby like fhlow Invocation e GNU Linux Starting Runlt from the command line will most likely look like this ruby lt RunItRoot gt bin runit rb This command can also be used to create a menu entry or a desktop icon Please read the documentation of your window manager if you don t know to how to do this Micros
33. pdates del tix General Computer Name Hardware User variables for simon You must be logged on as an din TEST ET aixi r Performance Visual effects processor scheduling Variable name Path Variable value oot system32 WBEM c wrkiflw core bin 4 User Profiles OK Cancel Desktop settings related to your logon n32 s simon LISTE s simon LISTE Delete 7 System variables Variable Value FP_NO_HOST_C NO E INPUTRC c jruby bin inputre euro NUMBER_OF_P 1 05 Windows_NT Path 2 cilruby bin C WINDOWS system32 C y New Edit 3 Delete r Startup and Recovery System startup system failure and debugging informatic Environment Variables El OK Cancel Figure 1 4 This figure shows how to set the Path environment variable on Microsoft Windows systems 1 Click on Environment Variables in the System Properties dialog 2 Select Path in the System variables list 3 Click on Edit 4 Add your fhlow bin directory to the Variable value text field by separating it with a semicolon from the previous entries is used instead of fhlow help Modelsim compile in Listing in line 48 and lines 49 to 65 show the specific help message for the subcommand compile of the plug in Modelsim Invoking a command of a plug in is done the same way Just type fhlow Modelsim compile or fhlow M c to start a compilation of your source code wi
34. rwrite a complex item in a lower level you have to add the character to the name of the complex item This tells fhlow to overwrite the settings of higher levels with the actual value 1 3 3 Default settings The default settings for the fhlow core are set in the file default flw introduced in Table and shown in Table Default settings for the plug ins are described in Section 1 5 FOOD OANOTKRWNHEH hi 00 Z DOEANaNNA CHAPTER 1 USER MANUAL 15 section a filename location config flw in a group complex xy2 fileb ow 0 Listing 1 11 File A e g in a Group An example configuration file for explaining the inheritance of configuration items section a filename config flw location in a unit iwas added complex unit_1 unit_2 RY fileb section b name 1234 Listing 1 12 The result of the merge of the files from Listings 1 10 and This file does not exist it is only an illustration of the fhlow internal configuration object Name Default value Description LeafPrefixes unit pkg lib Describes which leaf prefixes are allowed in which directory structure level NodePrefixes grp Describes which node prefixes are allowed in which directory structure level Table 1 9 Default settings for section fhlow ANa kwner CHAPTER 1 USER MANUAL 16 Dependencies Units no need to add Proll6 Prol16
35. t holds the name of the terminal program please read section 1 7 for further information CHAPTER 1 USER MANUAL 26 1 7 Runlt 1 7 1 Overview Runlt is a tiny GUI that stays always on top on a specified place of your desktop and can be used to start programs Icons program calls and the names of the buttons are defined in a configuration file The desired working directory for the programs is set by a dialogue window This tool was written to support the usage fhlow and is therefore avail able on Microsoft Windows and GNU Linux systems 1 7 2 Requirements In order to use Runlt you need e Ruby 1 8 more information can be found in 1 e wxRuby 0 6 0 more information can be found in 5 It is assumed from now on that these packages are installed and working If you have questions concerning the installation of these tools please read their documentation 1 7 3 Installation First download the newest stable version of RunIt from the download section at http fhlow lisuna org and unpack it using tar and gzip 7zip winzip or something similar to a directory of your choice This directory will from now on be called lt RunItRoot gt as you can see in Figure 1 7 4 Usage Configuration There is one configuration file settings rb in the directory lt RunIt Root gt bin which is used to set the parameters described in Table As this file includes Ruby source code it is possible to use variables to set common data for m
36. th Modelsim There are also some options that can be added to the fhlow command and the plug ins The switches that are used by the fhlow core have to be located directly after fhlow and are described in Table 1 14 The options for the subcommands are located after the name of the subcommand and are described within the description of the plug ins in section oono bune AMAHWMDWDADAAAAAAAATHTB HEA BEER ABR BP BRWwWWWWWWWWWNNNNNNNNNNKPHERPRE RRP RRR ORWNRFOOCANDUBWNFOOCANADUBWNFOOMAMAUBWNFOOANAUBWNKFOUOCANODAUBWNHO CHAPTER 1 USER MANUAL 24 7 fhlow user host Error RootNode Couldn t detect the fhlow root directory 4 work done E EE ee o A SS user host cd lt fhlowRoot gt grpProl16 unitCpu user host lt fhlowRoot gt grpProl16 unitCpu fhlow Lacoissococcecsocoootorococ soatotonssscoss costa nssscooosorejoros ssssess te Error while parsing command line No command given Usage fhlow lt global options gt COMMAND lt local options gt COMMAND lt options gt args try fhlow help COMMAND COMMAND for detailed help on commands Available COMMANDs Modelsim Plugin vor Modelsim compile gt Compiles the configured sources plsim gt Runs post layout simulation of the synthesized design simulate gt Simulates the design Quartus Plugin vor Altera Quartus placeandroute gt Runs placement and routing of c
Download Pdf Manuals
Related Search
Related Contents
21-PLUS/BMP Manual Técnico Smart.pmd Introduction to all Setting Functions Bild 1 - Seapilot 第70回定時株主総会 招集ご通知 AIBOと遊ぶ - ソニー製品情報 capas jurisprudencia_2013 - Site seguro do STJ Notice - Castorama Copyright © All rights reserved.
Failed to retrieve file