README.dk20k200_std32 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. ===============================================================================
  2. C P U , M E M O R Y , I N / O U T C O M P O N E N T S
  3. ===============================================================================
  4. see also [1]-[4]
  5. CPU: "standard_32"
  6. 32 bit NIOS for 33.333 MHz (nasys_clock_freq = 33333000)
  7. 256 Byte for register file (15 levels)
  8. no instruction cache
  9. no data cache
  10. 1 KByte On Chip ROM with GERMS boot monitor
  11. no On Chip RAM
  12. MSTEP multiplier
  13. no Debug Core
  14. no On Chip Instrumentation (OCI) enabled
  15. U-Boot CFG: CFG_NIOS_CPU_CLK = 50000000
  16. CFG_NIOS_CPU_ICACHE = 0
  17. CFG_NIOS_CPU_DCACHE = 0
  18. CFG_NIOS_CPU_REG_NUMS = 256
  19. CFG_NIOS_CPU_MUL = 0
  20. CFG_NIOS_CPU_MSTEP = 1
  21. CFG_NIOS_CPU_DBG_CORE = 0
  22. IRQ: Nr. | used by
  23. ------+--------------------------------------------------------
  24. 25 | TIMER0 | CFG_NIOS_CPU_TIMER0_IRQ = 25
  25. 26 | UART0 | CFG_NIOS_CPU_UART0_IRQ = 26
  26. 27 | PIO2 | CFG_NIOS_CPU_PIO2_IRQ = 27
  27. 28 | UART1 | CFG_NIOS_CPU_UART1_IRQ = 28 (debug)
  28. MEMORY: 1 MByte Flash
  29. 256 KByte SRAM
  30. (SDRAM with standard SODIMM only)
  31. Timer: TIMER0: high priority programmable timer (IRQ25)
  32. U-Boot CFG: CFG_NIOS_CPU_TICK_TIMER = 0
  33. PIO: Nr. | description
  34. ------+--------------------------------------------------------
  35. PIO0 | SEVENSEG: 16 outputs for user seven segment display
  36. PIO1 | LED: 8 outputs for user LEDs
  37. PIO2 | BUTTON: 4 inputs for user push buttons (IRQ27)
  38. PIO3 | LCD: 11 in/outputs for ASCII LCD
  39. U-Boot CFG: CFG_NIOS_CPU_SEVENSEG_PIO = 0
  40. CFG_NIOS_CPU_LED_PIO = 1
  41. CFG_NIOS_CPU_BUTTON_PIO = 2
  42. CFG_NIOS_CPU_LCD_PIO = 3
  43. UART: UART0: fixed baudrate of 115200, fixed protocol 8N2,
  44. without handshake RTS/CTS (IRQ26)
  45. UART1: fixed baudrate of 115200, fixed protocol 8N1,
  46. without handshake RTS/CTS (IRQ28)
  47. ===============================================================================
  48. M E M O R Y M A P
  49. ===============================================================================
  50. - - - - - - - - - - - external memory - - - - - - - - - - - - - - - - - - -
  51. 0x00200000 ---15------------8|7-------------0-
  52. | sector 18 | \
  53. + 0x0f0000 |- - - - - - - - - - - - - - - -| |
  54. | : | |
  55. Flash |- - - - : - - - -| |
  56. | sector 5 : | |
  57. + 0x020000 |- - - - - - - - -| |
  58. | sector 4 (size = 0x10000) | |
  59. + 0x010000 |- - - - - - - - - - - - - - - -| > CFG_NIOS_CPU_FLASH_SIZE
  60. | sector 3 (size = 0x08000) | | = 0x00100000
  61. + 0x008000 |- - - - - - - - - - - - - - - -| |
  62. | sector 2 (size = 0x02000) | |
  63. + 0x006000 |- - - - - - - - - - - - - - - -| |
  64. | sector 1 (size = 0x02000) | |
  65. + 0x004000 |- - - - - - - - - - - - - - - -| |
  66. | sector 0 (size = 0x04000) | /
  67. 0x00100000 ---15------------8|7-------------0- CFG_NIOS_CPU_FLASH_BASE
  68. | |
  69. : gap :
  70. | |
  71. 0x00080000 ---32-----------16|15------------0-
  72. 0x00080000 --+32-----------16|15------------0+
  73. | . | \ \
  74. | . | | |
  75. | . | | > CFG_NIOS_CPU_VEC_SIZE
  76. | . | | | = 0x00000100
  77. | . | | /
  78. 0x0007ff00 |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_VEC_BASE
  79. 0x0007ff00 |- - - - - - - - - - - - - - - -+-|- CFG_NIOS_CPU_STACK
  80. | . | | \
  81. | . | | |
  82. | . | | > stack area
  83. | . | | |
  84. | . | | V
  85. | . | |
  86. SRAM | . | > CFG_NIOS_CPU_SRAM_SIZE
  87. | . | | = 0x00040000
  88. | | /
  89. 0x00040000 ---32-----------16|15------------0- CFG_NIOS_CPU_SRAM_BASE
  90. | |
  91. : gap :
  92. : :
  93. - - - - - - - - - - - on chip i/o - - - - - - - - - - - - - - - - - - -
  94. : :
  95. : gap :
  96. | |
  97. 0x00000400 ---32-----------16|15------------0-
  98. | (unused) | \
  99. + 0x1c |- - - - - - - - - - - - - - - -| |
  100. | (unused) | |
  101. + 0x18 |- - - - - - - - - - - - - - - -| |
  102. | (unused) | |
  103. + 0x14 |- - - - - - - - - - - - - - - -| |
  104. UART1 | (unused) | > 0x00000020
  105. [2] + 0x10 |- - - - - - - - - - - - - - - -| |
  106. | control (10 bit) (rw) | |
  107. + 0x0c |- - - - - - - - - - - - - - - -| |
  108. | status (10 bit) (rw) | |
  109. + 0x08 |- - - - - - - - - - - - - - - -| |
  110. | txdata (8 bit) (wo) | |
  111. + 0x04 |- - - - - - - - - - - - - - - -| |
  112. | rxdata (8 bit) (ro) | /
  113. 0x000004c0 ---32-----------16|15------------0- CFG_NIOS_CPU_UART1
  114. | |
  115. : gap :
  116. | |
  117. 0x00000490 ---32-----------16|15------------0-
  118. | (unused) | \
  119. + 0x0c |- - - - - - - - - - - - - - - -| |
  120. PIO3 | (unused) | |
  121. [4] + 0x08 |- - - - - - - - - - - - - - - -| > 0x00000010
  122. | direction (11 bit) (rw) | |
  123. + 0x04 |- - - - - - - - - - - - - - - -| |
  124. | data (11 bit) (rw) | /
  125. 0x00000480 ---32-----------16|15------------0- CFG_NIOS_CPU_PIO3
  126. | edgecapture (12 bit) (rw) | \
  127. + 0x0c |- - - - - - - - - - - - - - - -| |
  128. PIO2 | interruptmask (12 bit) (rw) | |
  129. [4] + 0x08 |- - - - - - - - - - - - - - - -| > 0x00000010
  130. | (unused) | |
  131. + 0x04 |- - - - - - - - - - - - - - - -| |
  132. | data (12 bit) (ro) | /
  133. 0x00000470 ---32-----------16|15------------0- CFG_NIOS_CPU_PIO2
  134. | (unused) | \
  135. + 0x0c |- - - - - - - - - - - - - - - -| |
  136. PIO1 | (unused) | |
  137. [4] + 0x08 |- - - - - - - - - - - - - - - -| > 0x00000010
  138. | direction (2 bit) (rw) | |
  139. + 0x04 |- - - - - - - - - - - - - - - -| |
  140. | data (2 bit) (rw) | /
  141. 0x00000460 ---32-----------16|15------------0- CFG_NIOS_CPU_PIO1
  142. | (unused) | \
  143. + 0x1c |- - - - - - - - - - - - - - - -| |
  144. | (unused) | |
  145. + 0x18 |- - - - - - - - - - - - - - - -| |
  146. | snaph (16 bit) (rw) | |
  147. + 0x14 |- - - - - - - - - - - - - - - -| |
  148. TIMER0 | snapl (16 bit) (rw) | |
  149. [3] + 0x10 |- - - - - - - - - - - - - - - -| > 0x00000020
  150. | periodh (16 bit) (rw) | |
  151. + 0x0c |- - - - - - - - - - - - - - - -| |
  152. | periodl (16 bit) (rw) | |
  153. + 0x08 |- - - - - - - - - - - - - - - -| |
  154. | control (4 bit) (rw) | |
  155. + 0x04 |- - - - - - - - - - - - - - - -| |
  156. | status (2 bit) (rw) | /
  157. 0x00000440 ---32-----------16|15------------0- CFG_NIOS_CPU_TIMER0
  158. | (unused) | \
  159. + 0x0c |- - - - - - - - - - - - - - - -| |
  160. PIO0 | (unused) | |
  161. [4] + 0x08 |- - - - - - - - - - - - - - - -| > 0x00000010
  162. | (unused) | |
  163. + 0x04 |- - - - - - - - - - - - - - - -| |
  164. | data (16 bit) (wo) | /
  165. 0x00000420 ---32-----------16|15------------0- CFG_NIOS_CPU_PIO0
  166. | (unused) | \
  167. + 0x1c |- - - - - - - - - - - - - - - -| |
  168. | (unused) | |
  169. + 0x18 |- - - - - - - - - - - - - - - -| |
  170. | (unused) | |
  171. + 0x14 |- - - - - - - - - - - - - - - -| |
  172. UART0 | (unused) | > 0x00000020
  173. [2] + 0x10 |- - - - - - - - - - - - - - - -| |
  174. | control (10 bit) (rw) | |
  175. + 0x0c |- - - - - - - - - - - - - - - -| |
  176. | status (10 bit) (rw) | |
  177. + 0x08 |- - - - - - - - - - - - - - - -| |
  178. | txdata (8 bit) (wo) | |
  179. + 0x04 |- - - - - - - - - - - - - - - -| |
  180. | rxdata (8 bit) (ro) | /
  181. 0x00000400 ---32-----------16|15------------0- CFG_NIOS_CPU_UART0
  182. - - - - - - - - - - - on chip memory - - - - - - - - - - -
  183. 0x00000400 ---32-----------16|15------------0-
  184. | : | \
  185. | : | |
  186. GERMS | : | > na_boot_monitor_rom_size
  187. | : | | = 0x00000400
  188. | : | /
  189. 0x00000000 |- - - - - - - - - - - - - - - -+- - nasys_reset_address
  190. 0x00000000 ---32-----------16|15------------0- na_boot_monitor_rom
  191. ===============================================================================
  192. F L A S H M E M O R Y A L L O C A T I O N
  193. ===============================================================================
  194. 0x00200000 ---15------------8|7-------------0-
  195. | : | \
  196. SAFE | : | > 256 KByte
  197. FPGA conf. | : | / (NOT usable by software)
  198. 0x001c0000 --+- - - - - - - -:- - - - - - - -+-
  199. | : | \
  200. USER | : | > 256 KByte
  201. FPGA conf. | : | / (NOT usable by software)
  202. 0x00180000 --+- - - - - - - -:- - - - - - - -+-
  203. | : | \
  204. | : | |
  205. | : | > 512 KByte free for use
  206. 0x00140000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
  207. | : | /
  208. 0x00100000 ---15------------8|7-------------0-
  209. ===============================================================================
  210. R E F E R E N C E S
  211. ===============================================================================
  212. [1] http://www.altera.com/literature/ds/ds_nios_board_apex_20k200e.pdf
  213. [2] http://www.altera.com/literature/ds/ds_nios_uart.pdf
  214. [3] http://www.altera.com/literature/ds/ds_nios_timer.pdf
  215. [4] http://www.altera.com/literature/ds/ds_nios_pio.pdf
  216. ===============================================================================
  217. Stephan Linz <linz@li-pro.net>