|  |  | 
|  | <html> | 
|  | <head> | 
|  | <meta charset="UTF-8"> | 
|  | </head> | 
|  | <style type='text/css'>/* Stylesheet for mistletoe output in class=mdown div */ | 
|  | /* Copyright lowRISC contributors. */ | 
|  | /* Licensed under the Apache License, Version 2.0, see LICENSE for details.*/ | 
|  | /* SPDX-License-Identifier: Apache-2.0 */ | 
|  |  | 
|  | .mdown { | 
|  | -ms-text-size-adjust: 100%; | 
|  | -webkit-text-size-adjust: 100%; | 
|  | color: #24292e; | 
|  | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; | 
|  | font-size: 16px; | 
|  | word-wrap: break-word; | 
|  | width: 80%; | 
|  | margin-left:auto; | 
|  | margin-right:auto; | 
|  | } | 
|  |  | 
|  | .mdown code, | 
|  | .mdown pre { | 
|  | font-family: monospace, monospace; | 
|  | font-size: 1em; | 
|  | display: inline; | 
|  | max-width: auto; | 
|  | padding: 0; | 
|  | margin: 0; | 
|  | overflow: visible; | 
|  | line-height: inherit; | 
|  | word-wrap: normal; | 
|  | background-color: transparent; | 
|  | border: 0; | 
|  | } | 
|  |  | 
|  | .mdown table { | 
|  | border-spacing: 0; | 
|  | border-collapse: collapse; | 
|  | display: block; | 
|  | width: 100%; | 
|  | overflow: auto; | 
|  | } | 
|  |  | 
|  | .mdown table th { | 
|  | font-weight: 600; | 
|  | } | 
|  |  | 
|  | .mdown table th, | 
|  | .mdown table td { | 
|  | padding: 6px 13px; | 
|  | border: 1px solid black; | 
|  | } | 
|  |  | 
|  | .mdown table tr { | 
|  | background-color: #fff; | 
|  | border-top: 1px solid #c6cbd1; | 
|  | } | 
|  |  | 
|  | .mdown table tr:nth-child(even) { | 
|  | background-color: lightgray; | 
|  | } | 
|  |  | 
|  | p.titleright { | 
|  | font-size: 1em; | 
|  | text-align: right; | 
|  | font-weight: 600; | 
|  | } | 
|  |  | 
|  | h1 { | 
|  | text-align: center; | 
|  | } | 
|  | p.copy { | 
|  | font-weight: 100; | 
|  | font-size: 1em; | 
|  | text-align: left; | 
|  | } | 
|  |  | 
|  | code.reg { | 
|  | font-family: monospace, monospace; | 
|  | font-size: 0.8em; | 
|  | color: blue; | 
|  | } | 
|  |  | 
|  | .highlight { | 
|  | border-left: 2px solid; | 
|  | font-size: 80%; | 
|  | padding: 12px 8px; | 
|  | } | 
|  |  | 
|  | table.section_heading { | 
|  | border: 2px solid black; | 
|  | width: 100%; | 
|  | font-size: 140%; | 
|  | background-color:#ffe8e8; | 
|  | text-align:center; | 
|  | vertical-align:middle; | 
|  | font-family: serif; | 
|  | display: table; | 
|  | } | 
|  |  | 
|  | table.section_heading tr, | 
|  | table.section_heading td { | 
|  | border: 1px solid black; | 
|  | width: 100%; | 
|  | background-color:#ffe8e8; | 
|  | border: 0px; | 
|  | float: center; | 
|  | } | 
|  |  | 
|  | table.subsection_heading { | 
|  | border: 2px solid black; | 
|  | width: 100%; | 
|  | font-size: 110%; | 
|  | background-color:white; | 
|  | text-align:center; | 
|  | vertical-align:middle; | 
|  | font-family: serif; | 
|  | display: table; | 
|  | } | 
|  |  | 
|  | table.subsection_heading tr, | 
|  | table.subsection_heading td { | 
|  | border: 1px solid black; | 
|  | width: 100%; | 
|  | background-color:white; | 
|  | border: 0px; | 
|  | float: center; | 
|  | } | 
|  | /* Stylesheet for reggen html register output */ | 
|  | /* Copyright lowRISC contributors. */ | 
|  | /* Licensed under the Apache License, Version 2.0, see LICENSE for details.*/ | 
|  | /* SPDX-License-Identifier: Apache-2.0 */ | 
|  |  | 
|  | table.regpic { | 
|  | width: 95%; | 
|  | border-collapse: collapse; | 
|  | margin-left:auto; | 
|  | margin-right:auto; | 
|  | table-layout:fixed; | 
|  | } | 
|  |  | 
|  | table.regdef { | 
|  | border: 1px solid black; | 
|  | width: 80%; | 
|  | border-collapse: collapse; | 
|  | margin-left:auto; | 
|  | margin-right:auto; | 
|  | table-layout:auto; | 
|  | } | 
|  |  | 
|  | table.regdef th { | 
|  | border: 1px solid black; | 
|  | font-family: sans-serif; | 
|  |  | 
|  | } | 
|  |  | 
|  | td.bitnum { | 
|  | font-size: 60%; | 
|  | text-align: center; | 
|  | } | 
|  |  | 
|  | td.unused { | 
|  | border: 1px solid black; | 
|  | background-color: gray; | 
|  | } | 
|  |  | 
|  | td.fname { | 
|  | border: 1px solid black; | 
|  | text-align: center; | 
|  | font-family: sans-serif; | 
|  | } | 
|  |  | 
|  |  | 
|  | td.regbits, td.regperm, td.regrv { | 
|  | border: 1px solid black; | 
|  | text-align: center; | 
|  | font-family: sans-serif; | 
|  | } | 
|  |  | 
|  | td.regde, td.regfn { | 
|  | border: 1px solid black; | 
|  | } | 
|  |  | 
|  | table.cfgtable { | 
|  | border: 1px solid black; | 
|  | width: 80%; | 
|  | border-collapse: collapse; | 
|  | margin-left:auto; | 
|  | margin-right:auto; | 
|  | table-layout:auto; | 
|  | } | 
|  |  | 
|  | table.cfgtable th { | 
|  | border: 1px solid black; | 
|  | font-family: sans-serif; | 
|  | font-weight: bold; | 
|  | } | 
|  |  | 
|  | table.cfgtable td { | 
|  | border: 1px solid black; | 
|  | font-family: sans-serif; | 
|  | } | 
|  | </style> | 
|  | <div class="mdown"> | 
|  | <p>{ name: "TRIAL1", | 
|  | regwidth: 32, | 
|  | // this is a legal comment, with TODO and FIXME | 
|  | registers: [ | 
|  | //////////////////////////// | 
|  | // | 
|  | // read-write types no HWQE no HWEXT | 
|  | { name: "RWTYPE0", | 
|  | desc: "RW type with one field", | 
|  | swaccess: "rw", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "12345678", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "RWTYPE1", | 
|  | desc: ''' | 
|  | RW type | 
|  | with long | 
|  | description | 
|  | and multiple fields | 
|  | ''' | 
|  | swaccess: "rw", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { bits: "0", | 
|  | name: "FIELD0", | 
|  | desc: "field 0", | 
|  | resval: "1", | 
|  | } | 
|  | { bits: "1", | 
|  | name: "FIELD1", | 
|  | desc: "field 1", | 
|  | resval: "0", | 
|  | } | 
|  | { bits: "4", | 
|  | name: "FIELD4", | 
|  | desc: "field 4", | 
|  | resval: "1", | 
|  | } | 
|  | { bits: "15:8", | 
|  | name: "FIELD15_8", | 
|  | desc: "field [15:8]", | 
|  | resval: "100", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "RWTYPE2", | 
|  | desc: "RW type with one field and HW rw", | 
|  | swaccess: "rw", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description", | 
|  | resval: "0x04000400", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "RWTYPE3", | 
|  | desc: "simple RW/HWR type with fields" | 
|  | swaccess: "rw", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "15:0", | 
|  | name: "field0", | 
|  | desc: "field description" | 
|  | resval: "0xcc55", | 
|  | } | 
|  | { | 
|  | bits: "31:16", | 
|  | name: "field1", | 
|  | desc: "field description" | 
|  | resval: "0xee66", | 
|  | } | 
|  | ] | 
|  | } | 
|  | { skipto: "0x200" } | 
|  | { name: "RWTYPE4", | 
|  | desc: "simple RW type with fields, plus skipto", | 
|  | swaccess: "rw", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { | 
|  | bits: "15:0", | 
|  | name: "field0", | 
|  | desc: "field description" | 
|  | resval: "0x4000", | 
|  | } | 
|  | { | 
|  | bits: "31:16", | 
|  | name: "field1", | 
|  | desc: "field description" | 
|  | resval: "0x8000", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // read-only type | 
|  | { name: "ROTYPE0", | 
|  | desc: "RO type", | 
|  | swaccess: "ro", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0" | 
|  | desc: "field description" | 
|  | resval: "0x11111111" | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // W1C/W1S/etc types no HWQE no HWEXT | 
|  | { name: "W1CTYPE0", | 
|  | desc: "W1C type with one field", | 
|  | swaccess: "rw1c", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0xbbccddee", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "W1CTYPE1", | 
|  | desc: "W1C type with fields", | 
|  | swaccess: "rw1c", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { | 
|  | bits: "15:0", | 
|  | name: "field0", | 
|  | desc: "field description" | 
|  | resval: "0xeeee", | 
|  | } | 
|  | { | 
|  | bits: "31:16", | 
|  | name: "field1", | 
|  | desc: "field description" | 
|  | resval: "0x7777", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "W1CTYPE2", | 
|  | desc: "W1C type with one field, plus HRW", | 
|  | swaccess: "rw1c", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0xaa775566", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "W1STYPE2", | 
|  | desc: "W1S type with one field, plus HRW", | 
|  | swaccess: "rw1s", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0x11224488", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "W0CTYPE2", | 
|  | desc: "W0C type with one field, plus HRW", | 
|  | swaccess: "rw0c", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0xfec8137f", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "R0W1CTYPE2", | 
|  | desc: "R0W1C type with one field, plus HRW", | 
|  | swaccess: "r0w1c", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0xaa775566", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // read-only-clear type | 
|  | { name: "RCTYPE0", | 
|  | desc: "RC type", | 
|  | swaccess: "rc", | 
|  | hwaccess: "hrw", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0" | 
|  | desc: "field description" | 
|  | resval: "0x77443399" | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // write-only type | 
|  | { name: "WOTYPE0", | 
|  | desc: "WO type", | 
|  | swaccess: "wo", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0" | 
|  | desc: "field description" | 
|  | resval: "0x11223344" | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { name: "MIXTYPE0", | 
|  | desc: "mixed type with different field access", | 
|  | swaccess: "rw", | 
|  | hwaccess: "hro", | 
|  | fields: [ | 
|  | { | 
|  | bits: "3:0", | 
|  | name: "field0", | 
|  | desc: "field description" | 
|  | // should be default access | 
|  | resval: "0x1", | 
|  | } | 
|  | { | 
|  | bits: "7:4", | 
|  | name: "field1", | 
|  | desc: "field description" | 
|  | swaccess: "rw", | 
|  | hwaccess: "hrw", | 
|  | resval: "0x2", | 
|  | } | 
|  | { | 
|  | bits: "11:8", | 
|  | name: "field2", | 
|  | desc: "field description" | 
|  | swaccess: "ro", | 
|  | hwaccess: "hro", | 
|  | resval: "0x3", | 
|  | } | 
|  | { | 
|  | bits: "15:12", | 
|  | name: "field3", | 
|  | desc: "field description" | 
|  | swaccess: "ro", | 
|  | hwaccess: "hrw", | 
|  | resval: "0x4", | 
|  | } | 
|  | { | 
|  | bits: "19:16", | 
|  | name: "field4", | 
|  | desc: "field description" | 
|  | swaccess: "rw1c", | 
|  | hwaccess: "hrw", | 
|  | resval: "0x5", | 
|  | } | 
|  | { | 
|  | bits: "23:20", | 
|  | name: "field5", | 
|  | desc: "field description" | 
|  | swaccess: "rw1s", | 
|  | hwaccess: "hrw", | 
|  | resval: "0x6", | 
|  | } | 
|  | { | 
|  | bits: "27:24", | 
|  | name: "field6", | 
|  | desc: "field description" | 
|  | swaccess: "rc", | 
|  | hwaccess: "hrw", | 
|  | resval: "0x7", | 
|  | } | 
|  | { | 
|  | bits: "31:28", | 
|  | name: "field7", | 
|  | desc: "field description" | 
|  | swaccess: "wo", | 
|  | hwaccess: "hro", | 
|  | resval: "0x8", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // read-write type with HWQE (not external) | 
|  | { name: "RWTYPE5", | 
|  | desc: "RW type with hwqe", | 
|  | swaccess: "rw", | 
|  | hwaccess: "hrw",  // do hrw to see the difference between written values | 
|  | hwqe: "true", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0xbabababa", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // read-write type with HWEXT | 
|  | { name: "RWTYPE6", | 
|  | desc: "RW type with hwext", | 
|  | swaccess: "rw", | 
|  | hwaccess: "hrw", | 
|  | hwext:    "true", | 
|  | hwqe:     "true", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0xc8c8c8c8", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | //////////////////////////// | 
|  | // | 
|  | // read-only type with HWEXT (defaults to have hwqe too, doesn't really enforce RO) | 
|  | { name: "ROTYPE1", | 
|  | desc: "RO type with hwext", | 
|  | swaccess: "ro", | 
|  | hwaccess: "hrw", | 
|  | hwext: "true", | 
|  | fields: [ | 
|  | { | 
|  | bits: "31:0", | 
|  | desc: "field description" | 
|  | resval: "0x66aa66aa", | 
|  | } | 
|  | ] | 
|  | }, | 
|  | ] | 
|  | }</p> | 
|  | <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </body> | 
|  | </html> |