efabless / caravel-gf180mcu

This repository is the GF180MCU port of Caravel. For more information about Caravel, see the original repo at https://github.com/efabless/caravel.
Apache License 2.0
8 stars 8 forks source link

bits in user_id_programming are backwards #153

Closed jeffdi closed 1 year ago

d-m-bailey commented 1 year ago

Changing

                user_id_bits = '{0:032b}'.format(user_id_int)

to

                user_id_bits = '{0:032b}'.format(user_id_int)[::-1]

in scripts/set_user_id.py may work.

RTimothyEdwards commented 1 year ago

@d-m-bailey : It's not at all clear to me where it is backwards, especially as the sky130 version has the same script code but produces bits in the correct order. However, your answer makes the most sense, because the string order of the original puts the high bit at string index 0, which is later compared to mask_rev[0]. So I think this change is the one that needs to be made.

But is the sky130 version also backwards? Or did I just enter the via coordinates in reverse order so that it comes out right?

RTimothyEdwards commented 1 year ago

@jeffdi : Fixed in PR #179, which needs to be merged.

d-m-bailey commented 1 year ago

From what I could see from the code, it looks like sky130 is also backwards.

Do we have silicon verification that gf180 and/or sky130 chip ids are reversed?

RTimothyEdwards commented 1 year ago

@d-m-bailey : I definitely have silicon verification that the gf180 chip IDs are reversed, but I thought we had verified that the sky130 chip IDs are in the correct orientation, which has me very confused. I will need to double-check it.

d-m-bailey commented 1 year ago

I looked at the sky130 user_id script, but I could not figure out why it worked either.

jeffdi commented 1 year ago

merged PR #179