| // Copyright lowRISC contributors. | 
 | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
 | // SPDX-License-Identifier: Apache-2.0 | 
 | { name: "TRIAL1", | 
 |   regwidth: 32, | 
 |   clock_primary: "clk_fixed", | 
 |   bus_interfaces: [ | 
 |     { protocol: "tlul", direction: "device" } | 
 |   ], | 
 |   // 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", | 
 |         } | 
 |       ] | 
 |     }, | 
 |      //////////////////////////// | 
 |     // | 
 |     // read-only type with HWACCESS=NONE | 
 |     { name: "ROTYPE2", | 
 |       desc: "RO type, constant only (hw=none)", | 
 |       swaccess: "ro", | 
 |       hwaccess: "none", | 
 |       fields: [ | 
 |         { | 
 |           name: "field0", | 
 |           bits: "7:0", | 
 |           desc: "field 0 description" | 
 |           resval: "0x79", | 
 |         } | 
 |         { | 
 |           name: "field1", | 
 |           bits: "15:8", | 
 |           desc: "field 1 description" | 
 |           resval: "0x8a", | 
 |         } | 
 |         { | 
 |           name: "field2", | 
 |           bits: "31:20", | 
 |           desc: "field 2 description" | 
 |           resval: "0x9b9", | 
 |         } | 
 |       ] | 
 |     }, | 
 |      //////////////////////////// | 
 |     // | 
 |     // read-write type with HW-NONE | 
 |     { name: "RWTYPE7", | 
 |       desc: "RW type with hw-none", | 
 |       swaccess: "rw", | 
 |       hwaccess: "none", | 
 |       fields: [ | 
 |         { | 
 |           bits: "31:0", | 
 |           desc: "field description" | 
 |           resval: "0xf6f6f6f6", | 
 |         } | 
 |       ] | 
 |     }, | 
 |   ] | 
 | } |