Search the Community
Showing results for tags 'sc_bv'.
-
I have recently modeled registers as simple unions to represent bitfields, for example: typedef union { struct { uint32_t ADDRESS:5; uint32_t RESERVED:26; uint32_t ENABLE:1; } b; uint32_t w; } register_type; which facilitates the access to either the complete word or a bitfield. The interesting part comes when I try to check if the register value has changed, is there a more elegant way of doing this than polling in if or while statements for each register's value? I need to do this for a lot of them so I was wondering if modeling this using sc_bv provides a built-in event I could use in a SC_METHOD sensitivity list? example: typedef union { struct { sc_bv<5> ADDRESS; sc_bv<26> RESERVED; sc_bv<1> ENABLE; } b; uint32_t w; } register_type; and then do something like: register_type Reg; ... SC_METHOD(some_method); sensitive << Reg.b.ENABLE; ... some_method(){ ... } Any pointers or ideas are greatly appreciated
- 1 reply
-
- events
- register model
-
(and 1 more)
Tagged with:
-
I am trying a convert a string to a bit vector but unable to do so. Aim is to directly store the string as bit vector into Memory. Part of code: //<required libs declared> //..// string line; sc_bv<32> Mem[256]; //..// case 1: { i=1; ifstream mem_1("../mem_1.txt"); if (mem_1){ while (getline(mem_1,line)){ Mem= line; i++ ; } mem_1.close(); } else { cout << "mem_1 not found "; } break; } Where mem_1.txt contains binary: eg. 00100000000001000000000000000000 00000000010000110010100000100100 00000000011000000011000000100111 Error: /usr/local/systemc-2.3.0/include/sysc/datatypes/bit/sc_bv.h:192:15: note: sc_dt::sc_bv<W>& sc_dt::sc_bv<W>::operator=(sc_dt::int64) [with int W = 32, sc_dt::int64 = long long int] /usr/local/systemc-2.3.0/include/sysc/datatypes/bit/sc_bv.h:192:15: note: no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘long long int’ Thanks in advance. -- Samyak