Skip to content

Conversation

mlewandowski0
Copy link
Contributor

@mlewandowski0 mlewandowski0 commented Aug 25, 2025

Hi,

This peripheral implements CORDIC, which allows getting values of trigonometric, hyperbolic, multiplication/division and some other functions (testing for square root and natural logarithm). It uses a signed, 16-bit fixed-point representation as input and output. I used the i_user_peri37 peripheral slot.

My test cases are separated into multiple files, and there are 2 tiles for utilities (like inputting and outputting certain configurations and fixed-point arithmetic). I had to add init.py in a couple of places to import these functionalities; I hope that is OK. I also added matplotlib to the requirements, because my test collects values from different functions and plots them as artefacts in CI.

Link to your peripheral repo: https://github.com/mlewandowski0/tinyqv-cordic

all github actions pass : https://github.com/mlewandowski0/tinyqv-cordic/actions

here is the documentation of the peripheral : https://github.com/mlewandowski0/tinyqv-cordic/actions/runs/17192243103/artifacts/3838531345

I am also on tinytapeout discord with username "Maciej"

@MichaelBell
Copy link
Collaborator

This looks good! The build is failing because you need to add the verilog files to info.yaml.

Another peripheral got in before you to slot 37, so I'm afraid you will have to renumber. If you could add it to the spreadsheet (pinned in Discord), that should help avoid conflicts.

@mlewandowski0
Copy link
Contributor Author

Hi! Thanks for pointing it out ( apologies for taking slot 37, I didn't know about the spreadsheet, I updated it with my peripheral). I mapped now to slot 38, put the verilog files into info.yaml and resolved the conflicts

@mlewandowski0
Copy link
Contributor Author

Hi,

I noticed the gds/gl_test_peri failed; it seems to be due to a timeout. Are there any issues with my test cases? They are quite long and do require lots of writes/reads ( I didn't really notice any of them running, so I'm not sure). Could you please advise on how I could fix this build so it passes and can be merged?

@MichaelBell
Copy link
Collaborator

I don't think the tests are excessive. I've now split the peripheral gl test action into two so that they will run in parallel. So if you merge the latest main in and make sure your tests go into USER_PERIPHERALS_B hopefully that will fix it.

Please could you also update your standalone peripheral repo with the change to the ROM (I think this will likely reduce utilization, so it shouldn't be a problem!)

@mlewandowski0
Copy link
Contributor Author

Thanks! I have merged the branch, and the CI is rerunning; hopefully, it will be okay. I also updated the peripheral repository (removed the unused code), and the run is here: https://github.com/mlewandowski0/tinyqv-cordic/actions/runs/17278204203.

It doesn't seem to change much in utilisation. Perhaps I misunderstood something? ( I removed the sequential ROM file, which was only in first draft, the combinational ROM is the same in both repositories).

@MichaelBell
Copy link
Collaborator

Apologies, I think I just got confused by the extra file when I was doing the diff. It all matches now so this should be good to merge as long as the actions succeed. Thank you.

@MichaelBell MichaelBell merged commit a6f957e into TinyTapeout:main Aug 28, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants