Online Class Notes (Jesse)

Writing exercise

Let’s start with RAM tests

Here are four RAM tests that cover normal function, iddq, and counter saturation.

First test is to verify normal function

Firstly, Randomly generate 32 ro frequencies which are from 25Mhz to 250Mhz

250Mhz is RO Maximum frequency, because jtag_clk is 50Mhz, so I set the minimum frequency to 25Mhz.

Then sweep select from 0 to 63, and sweep divide from 0 to 7.

In the for loop,

1.Raise enable for some random duration(div<4->duration=100~160;div>4->duration=200~250).

Keep the duration with a reasonable range and make sure the counter dosen’t saturate., max counter is about 800

  1. Lower enable and wait additional cycles, and then read counter value at outputs

Finally 3. check counter values in the scoreboard.

The second test verifies iddq

Firstly, randomly generate 32 ro frequencies

Sweep select from 0 to 64.

In this for loop.

  1. Randomly divide. Raise Enable, let RO toggle for some random duration((div<4->duration=100~160;div>4->duration=200~250), read counter value at outputs.
  2. Raise IDDQ and wait additional cycles, read counter value at outputs
  3. check that counter is cleared out in scoreboard
  4. Lower IDDQ
  5. Lower Enable

The last test verifies counter saturation.

Speed up the frequency to between 125 and 250Mhz in order to make the counter saturate faster.

Sweep sel …..

{

}

Repeat the process 30 times.

That’s all for the RO test.

The next tests are about ctrlnew

Verify ctrlnew normal mode, halt mode and loop mode by jtag access and priv access.

Actually priv interface is not connected to the priv target, is just external interface.

About normal mode by jtag access.

  1. clean the status :
  2. sweep the trigger type to generate ism_enable and verify nmeas_lite counter

3. program central_trigger pri_trigger, pmm trigger by external interface, according to the trigger_src value.

4. clean the status to start the next experiment.

Next test is halt mode

  1. Clean the status
  2. There are two parallel threads

Thread 1: set ctrlnew to work in halt mode and trigger the enable.

Thread 2: wait for posedge ism_enable, then after (duration-3) clk cycles and raise the pri_halt to pull down the enable.

Because the pri_halt will sync 3 cycles to halt the enable. So set the pri_halt 3 cycles ahead will make the RO toggle duration clk cycles.

Compare real value with golden value in the list.

Vocabulary

jargon – words created in a job that others don’t know
eg. we speak a lot of jargon

if you do that, you will improve very quickly

 tuesday is in 2-3 days

it is on Tuesday
Oh… in 2 days? / on Tuesday

are you nervous?

Pronunciation

 just – “justaa”just

and“andaa”and