OpenRAM icon indicating copy to clipboard operation
OpenRAM copied to clipboard

Liberty updates for power char and bus deinjfiotn

Open dratchkov opened this issue 5 years ago • 9 comments

This pull request contains 2 changes:

  • Power characterization subtracts leakage from the total power measurements - 50x measured power over the last 2% of period is subtracted from total power measurement. gen_meas_power gets an additional 'leakage' parameter to indicate if this is a leakage-only measurement (in which case leakage is not subtracted) or not.
  • Liberty bus definitions were inverted, i.e. it was din[0:7] instead of din[7:0]

I don't know who to not include the modified .gitignore in this pull request.

dratchkov avatar Jul 13 '20 19:07 dratchkov

Hi David,

How do you commit? If you do a "git commit -a" it will commit the .gitignore as well. You should go through and do a "git add " for each file you want to commit. Then do a git commit to commit them all.

Matt

mguthaus avatar Jul 13 '20 19:07 mguthaus

The .gitignore is an old mess I created - I thought, mistakenly, I had committed it accidentally, so I removed it from teh repo with one of my older commits. I then proceeded with a few more commits after that.

What I am thinking is since I get the .gitignore from your dev branch, I can add/track it in my branch, so when you pull my branch if should just do a noop on the .gitgnore?

-dave

On Jul 13, 2020, at 12:59 PM, Matt Guthaus [email protected] wrote:

Hi David,

How do you commit? If you do a "git commit -a" it will commit the .gitignore as well. You should go through and do a "git add " for each file you want to commit. Then do a git commit to commit them all.

Matt

On Mon, Jul 13, 2020 at 12:57 PM David R. [email protected] wrote:

This pull request contains 2 changes:

  • Power characterization subtracts leakage from the total power measurements - 50x measured power over the last 2% of period is subtracted from total power measurement. gen_meas_power gets an additional 'leakage' parameter to indicate if this is a leakage-only measurement (in which case leakage is not subtracted) or not.
  • Liberty bus definitions were inverted, i.e. it was din[0:7] instead of din[7:0]

I don't know who to not include the modified .gitignore in this pull request.

You can view, comment on, or merge this pull request online at:

https://github.com/VLSIDA/OpenRAM/pull/80 Commit Summary

  • Remove file from tracking
  • Fix voltage_map names (these do not need to match pg_pin names)
  • Merge branch 'dev' of github.com:VLSIDA/OpenRAM into dev
  • Merge branch 'dev' of github.com:VLSIDA/OpenRAM into dev
  • Subtract leakage from total power measurement. Leakage is power for the last 2% of the period.
  • Fix bus ordering in Liberty

File Changes

Patch Links:

  • https://github.com/VLSIDA/OpenRAM/pull/80.patch
  • https://github.com/VLSIDA/OpenRAM/pull/80.diff

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/VLSIDA/OpenRAM/pull/80, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC67SL7CVQMZK25J2IFCZMDR3NRJXANCNFSM4OYZ4ZEQ .

-- Matthew Guthaus Associate Dean of Graduate Studies Professor, Computer Science & Engineering Baskin School of Engineering University of California Santa Cruz https://www.soe.ucsc.edu/people/mrg — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/VLSIDA/OpenRAM/pull/80#issuecomment-657761147, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC63FWKKG3FMTHM46OCBZILR3NRR7ANCNFSM4OYZ4ZEQ.

dratchkov avatar Jul 13 '20 21:07 dratchkov

I pushed a new commit, which includes a merge of your dev branch, and the .gitignore. This should bring us at the same level, .gitignore wise.

dratchkov avatar Jul 13 '20 21:07 dratchkov

I have also added the following additional enhancements:

  • Fix for leakage subtraction from dynamic power measurements (removed the 50X factor)
  • Added --num_threads command line option
  • Modified POST=0 if purge_temp is True, else POST=1.

dratchkov avatar Jul 31 '20 19:07 dratchkov

This code also adds support for Empyrean's ALPS simulator.

dratchkov avatar Jul 31 '20 22:07 dratchkov

Hi David,

I'm seeing some regression issues with this contribution:

runTest (21_hspice_delay_test.timing_sram_test) ... ERROR: file testutils.py: line 151: NOT CLOSE disabled_write1_power -0.006 0.187 diff=103.1% ERROR: file testutils.py: line 151: NOT CLOSE write1_power 0.032 0.266 diff=87.8% ERROR: file testutils.py: line 151: NOT CLOSE write0_power 0.095 0.333 diff=71.5% ERROR: file testutils.py: line 151: NOT CLOSE read0_power 0.205 0.301 diff=31.8% ERROR: file testutils.py: line 151: NOT CLOSE disabled_write0_power 0.047 0.178 diff=73.7% ERROR: file testutils.py: line 151: NOT CLOSE read1_power 0.205 0.301 diff=31.7% ERROR: file testutils.py: line 139: Results exceeded 25.0% tolerance compared to golden results:

Also, the .lib results in the "golden" directory have changed. If the new ones are correct, can you update them with correct results? file1=/tmp/openram_gitlab-runner_18147_temp//sram_2_16_1_freepdk45_FF_1p0V_25C.lib file2=/home/gitlab-runner/builds/2fd64746/0/mrg/PrivateRAM/compiler/tests/golden/sram_2_16_1_freepdk45_FF_1p0V_25C_analytical.lib ERROR: file testutils.py: line 242: MISMATCH Line (64): downto : true; != } ERROR: file testutils.py: line 242: MISMATCH Line (65): } != ERROR: file testutils.py: line 242: MISMATCH Line (66): != type (addr){ ERROR: file testutils.py: line 242: MISMATCH Line (67): type (addr){ != base_type : array; ERROR: file testutils.py: line 242: MISMATCH Line (68): base_type : array; != data_type : bit; ERROR: file testutils.py: line 242: MISMATCH Line (69): data_type : bit; != bit_width : ; ERROR: file testutils.py: line 242: MISMATCH Line (70): bit_width : ; != bit_from : ; ERROR: file testutils.py: line 242: MISMATCH Line (71): bit_from : ; != bit_to : ; ERROR: file testutils.py: line 242: MISMATCH Line (72): bit_to : ; != } ERROR: file testutils.py: line 242: MISMATCH Line (73): downto : true; != ERROR: file testutils.py: line 242: MISMATCH Line (74): } != cell (sram____freepdk){

mguthaus avatar Aug 03 '20 20:08 mguthaus

I will take care of these.

On Aug 3, 2020, at 1:59 PM, Matt Guthaus [email protected] wrote:

Hi David,

I'm seeing some regression issues with this contribution:

runTest (21_hspice_delay_test.timing_sram_test) ... ERROR: file testutils.py: line 151: NOT CLOSE disabled_write1_power -0.006 0.187 diff=103.1% ERROR: file testutils.py: line 151: NOT CLOSE write1_power 0.032 0.266 diff=87.8% ERROR: file testutils.py: line 151: NOT CLOSE write0_power 0.095 0.333 diff=71.5% ERROR: file testutils.py: line 151: NOT CLOSE read0_power 0.205 0.301 diff=31.8% ERROR: file testutils.py: line 151: NOT CLOSE disabled_write0_power 0.047 0.178 diff=73.7% ERROR: file testutils.py: line 151: NOT CLOSE read1_power 0.205 0.301 diff=31.7% ERROR: file testutils.py: line 139: Results exceeded 25.0% tolerance compared to golden results:

Also, the .lib results in the "golden" directory have changed. If the new ones are correct, can you update them with correct results? file1=/tmp/openram_gitlab-runner_18147_temp//sram_2_16_1_freepdk45_FF_1p0V_25C.lib file2=/home/gitlab-runner/builds/2fd64746/0/mrg/PrivateRAM/compiler/tests/golden/sram_2_16_1_freepdk45_FF_1p0V_25C_analytical.lib ERROR: file testutils.py: line 242: MISMATCH Line (64): downto : true; != } ERROR: file testutils.py: line 242: MISMATCH Line (65): } != ERROR: file testutils.py: line 242: MISMATCH Line (66): != type (addr){ ERROR: file testutils.py: line 242: MISMATCH Line (67): type (addr){ != base_type : array; ERROR: file testutils.py: line 242: MISMATCH Line (68): base_type : array; != data_type : bit; ERROR: file testutils.py: line 242: MISMATCH Line (69): data_type : bit; != bit_width : ; ERROR: file testutils.py: line 242: MISMATCH Line (70): bit_width : ; != bit_from : ; ERROR: file testutils.py: line 242: MISMATCH Line (71): bit_from : ; != bit_to : ; ERROR: file testutils.py: line 242: MISMATCH Line (72): bit_to : ; != } ERROR: file testutils.py: line 242: MISMATCH Line (73): downto : true; != ERROR: file testutils.py: line 242: MISMATCH Line (74): } != cell (sram____freepdk){

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/VLSIDA/OpenRAM/pull/80#issuecomment-668238584, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC63FWORPYUIOD75HHC4AKTR64QJ7ANCNFSM4OYZ4ZEQ.

dratchkov avatar Aug 04 '20 14:08 dratchkov

There are still errors in the unit tests, but this may just be replacing the "golden" results with updated ones. I'll take a look at this soon.

mguthaus avatar Sep 29 '20 13:09 mguthaus

Hi Prof Guthaus,

Yes, I will take care of those too.

-dave

Sent from my iPhone

On Sep 29, 2020, at 6:59 AM, Matt Guthaus [email protected] wrote:

 There are still errors in the unit tests, but this may just be replacing the "golden" results with updated ones. I'll take a look at this soon.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

dratchkov avatar Sep 29 '20 14:09 dratchkov