Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Extended VCD (EVCD) support #55

Merged
merged 11 commits into from Sep 1, 2022
Merged

Conversation

yihuajack
Copy link
Collaborator

Extended VCD is standardized by 1800-2017 IEEE Standard for SystemVerilog--Unified Hardware Design, Specification, and Verification Language. The EVCD2VCD converter referred to gtkwave's implementation. However, gtkwave's implementation has some defects. For example, it cannot properly handle line feeds between one declaration. This issue has been resolved in this implementation. Besides, vcd_ids are stored in a dict in a simple and pythonic way rather than Jim Plank's Red Black tree (JRB). Currently, vcdid_hash and vcdid_unhash are adopted from gtkwave's implementation, but they may not be necessary, because they are originally designed to fit in Jval data structure for more than 8-bit char or unsigned char array. Note that the function only provides basic syntax checking for EVCD file. A full and complete syntax checking is beyond Sootty's work.

@yihuajack yihuajack added the enhancement New feature or request label Aug 29, 2022
@yihuajack
Copy link
Collaborator Author

Some other detailed discussions see gtkwave/gtkwave#148

@yihuajack
Copy link
Collaborator Author

This PR partially resolves #13

Copy link
Owner

@Ben1152000 Ben1152000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't been able to run the code to test it out, but assuming there are no bugs it looks mostly good.

sootty/utils.py Outdated Show resolved Hide resolved
sootty/utils.py Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
sootty/utils.py Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
fix: remove additional comments
fix: add comments for each functions
fix: add -o in example in README.md
fix: give up `:=` operator as it's since Python 3.8
fix: evcd2vcd example in README.md
@yihuajack
Copy link
Collaborator Author

It seems that there is still a small bug when I use another example evcd file to test. Reviewing it.

fix: reformat function comments
feat: add a new evcd example generated by ModelSim
fix: evcd2vcd allows multiple nested scopes/upscopes
@yihuajack
Copy link
Collaborator Author

Function comments reformatted
A new evcd example generated by ModelSim added
bugfix: evcd2vcd allows multiple nested scopes/upscopes
Ready to be merged

@yihuajack yihuajack merged commit 1572c9b into Ben1152000:master Sep 1, 2022
@yihuajack yihuajack deleted the evcd branch September 1, 2022 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants