|  | 
 | <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> |