diff --git a/README.md b/README.md index c33e9e61..348114ba 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ de.uni-kl.ems.dram.vp.system ============================ -Generic DRAM controller simulator and debug tools related to it. +Generic DRAM controller simulator and related tools. ## Basic Setup @@ -9,19 +9,19 @@ In a terminal window execute the commands that follow. Go to your home directory. -``` +``` bash $ cd ``` Create a directory for your projects. -``` +``` bash $ mkdir projects ``` Clone the repository. -``` +``` bash $ git clone --recursive https://@git.rhrk.uni-kl.de/EIT-Wehn/dram.vp.system.git ``` @@ -29,25 +29,25 @@ The *--recursive* flag tells git to initialize all submodules within the repository. **DRAMPower** and **tinyxml** are examples third party repositories that were embedded within the source tree as submodules. -It is possible to work with a **fork** of the official codebase. A fork is a -copy of a repository. In that case, after pushing changes into your copy you -should create a **pull request** in order to your supervisor check and -possibly bring your changes to the official codebase. +It is possible to work with a copy of the official codebase. The copy is +called **fork**. In that case, after pushing changes into your fork you should +create a **pull request** in order to your supervisor check and possibly bring +your changes to the official codebase. -``` +``` bash $ git clone --recursive https://@git.rhrk.uni-kl.de//dram.vp.system.git ``` After cloning go to the project directory. -``` +``` bash $ cd dram.vp.system ``` ### With QTCreator Execute the *QTCreator*. -``` +``` bash $ qtcreator & ``` @@ -62,13 +62,25 @@ Repeat the procedure above and build the trace analyser project. **File -> Open Project -> dram.vp.sys/analyser/analyser/traceAnalizer.pro** +To speedup the building process one can use the additional **make** option +**-j[jobs]**. The command line below returns a good number to be passed to +make as the number of jobs that can run simultaneously to improve the building +time. + +``` bash +$ cat /proc/cpuinfo | grep processor | wc -l +``` + +In the left bar go to **Projects -> Build & Run -> Build Steps -> Make**. +Click in **Details** then **Make arguments** and add **-j** followed by the +number you got. ### Without QTCreator In case you prefer a command line interface to the QTCreator GUI you can also use **qmake** to generate a Makefile and then compile the project. -``` +``` bash $ cd dram $ mkdir build $ cd build @@ -84,7 +96,7 @@ passed through the command line a default configuration file will be loaded. The XML code below shows a typic configuration: -``` +``` xml @@ -153,7 +165,7 @@ Below are listed the configuration sections and configuration fields. The file [am_wideio.xml](dram/resources/configs/amconfigs/am_wideio.xml) is a good example. - ``` + ``` xml @@ -165,9 +177,7 @@ Below are listed the configuration sections and configuration fields. ![Address Mapping Sample 1](docs/images/am_sample1.png) - ![Address Mapping Sample 1 svg file](docs/images/am_sample1.svg) - - ``` + ``` xml @@ -179,19 +189,17 @@ Below are listed the configuration sections and configuration fields. ![Address Mapping Sample 2](docs/images/am_sample2.png) - ![Address Mapping Sample 2 svg file](docs/images/am_sample2.svg) - - **Memory Configuration** The content of [fifo.xml](dram/resources/configs/memconfigs/fifo.xml) is presented below as an example. - ``` + ``` xml - + @@ -203,7 +211,7 @@ Below are listed the configuration sections and configuration fields. ``` - *BankwiseLogic* (boolean) - - "1": perform bankwise operations such as refresh and powerdown + - "1": perform bankwise operations such as bankwise-refresh and bankwise-powerdown - "0": do not perform bankwise operations - *OpenPagePolicy* (boolean) - "1": use open page precharge policy @@ -224,11 +232,11 @@ Below are listed the configuration sections and configuration fields. - *Buswidth* (unsigned int) - Bus width in bits. - *ReadWriteGrouping* (boolean) - - "1": - - "0": + - "1": enable read writing grouping + - "0": disable read writing grouping - *ReorderBuffer* (boolean) - - "1": - - "0": + - "1": use reordering buffer + - "0": do not use reordering buffer - *ErrorChipSeed* (unsigned int) - Seed to initialize the random error generator. - *ErrorCSVFile* (string) @@ -238,6 +246,9 @@ Below are listed the configuration sections and configuration fields. - "Store": store data without error model - "ErrorModel": store data with error model +[1]: http://google.com +[2]: http://google.com + - **Trace setups** - *id* - *clkMhz* @@ -248,7 +259,7 @@ knowhow of memory technologies or some knowledge of the simulator source code. Some resources of the simulator are available in the **resources** directory its sub-directories. -``` +``` xml $ cd /projects/dram.vp.system/dram/resources ```