|
From: Maciej S. <mac...@ce...> - 2014-11-28 13:33:18
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Steve, The VPI functions to access dynamic arrays are ready to be merged. This is the groundwork that will allow me to write support for functions working with std_logic_vectors of undefined size, that has been my desire for a long time already. The pull request [1] also includes a previously sent branch that introduced type casting in SV. As usual, the new features are demonstrated with tests [2]. I think changes to VPI code deserve some further explanation. I did my best to reuse as much of existing code as possible. As the result, I added __vpiArrayBase type that gathers common traits of both static and dynamic arrays (respectively __vpiArray and __vpiDarray). There are also __vpiArrayIndex, __vpiArrayWord and __vpiArrayIterator that are used by both classes. A few static C functions that were called only by class methods are moved directly to appropriate methods (e.g. grep for vpi_array_var_word_get_value). A bunch of others are transformed to methods, in case they were operating on an instance of a class (see decode_array_word_pointer). As I have written recently, there is one thing left. If vectors are used as the array element type, then there is no way to check the details (2 vs 4-state logic and signedness). Regards, Orson 1. https://github.com/steveicarus/iverilog/pull/49 2. https://github.com/orsonmmz/ivtest/tree/darray_vpi_test -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJUeHmTAAoJEBRwGu1hpbJ1NGUH/0JuSTaZNbTOT8u4tz87eE4a D4pZ0iqY6N+fm+e3VZwgyFKRVuZIMwp8lr61T7Xrd9H8UhJyyTpFdaHfn6l4VKez TQGmRNTegKkF+rQDIYvyH5lN4SgqTxQxebztQmltqAMZBWKnvs5YiHlAXPvlWA++ wUeEV/RJFVXj3717npMtp6sKA0+xaGXlYUUQGXtjqrYQOIaMAM9DD8USKJYhnqIM L3srLkjBp9iL0Puh9tQxVy0Sz22eNWRy/19cjK3kv9ODTMHGnuQ2uIdR+J3wGxdd AwlaSCDCb0/gcmkkyEJP+pwFQXVeRdcPdllhM4A4H9LYpYqo7gRpij9Br35C3PQ= =OQ/7 -----END PGP SIGNATURE----- |