Archive

Solving git am failures

by Tsvi Mostovicz - Sun 23 March 2025

When you need to bring over patches from one repo (we'll call it repoA) to another (repoB) without being able to pull, one of the tools to do that would be git am.

You create a few patch files by calling git format-patch HEAD and git will create a patch …

CMake 101 (Part 1)

by Tsvi Mostovicz - Thu 19 March 2020

Following the tutorials

Obviously, the first thing to do is to follow the existing tutorials. Unfortunately, most of them will show you how to compile some code into a single executable.

What I need is something that will run a specific custom command. I don't use the GCC toolchain. These …

Revamping our build scripts

by Tsvi Mostovicz - Wed 18 March 2020

A short history

After a year or so at my job, I decided to delve a bit deeper into the build scripts we were using. They were mostly an emalgamation of some tcsh and perl. Being horrified at the cruft that has crept into the system, I went and rewrote …

Verification languages - overview and concepts

by Tsvi Mostovicz - Thu 21 February 2019

Running tests

When running a test you go through the following flow.

  • Compile - This part takes all of the source files and compiles them into a single library.
  • Elaborate - Resembles software's linking. Here we take the various objects and put them together like lego.
  • Run - Once the environment is compiled …

Contradictions between keep soft select and keep soft

by Tsvi Mostovicz - Sun 30 December 2018

TL;DR

When trying to constrain minimum and maximum payload size, the constraints in the test wouldn't be obeyed, due to a bad interaction between keep soft and keep soft ... select ==

The issue

We had the following code in our tests:

extend SEMI_RANDOM eth_seq {
    packet_size_mode : [ALL_JUMBO,MIX,NO_JUMBO,ALL_64];

    keep …

IO Error when copying files over NFS

by Tsvi Mostovicz - Thu 27 December 2018

The original issue

Jenkins started giving Input/Output errors when issuing cp commands during a specfic job. This job's workspace is on a local disk. The cp command copies the result to a directory mounted on our NFS server.

First try - S.M.A.R.T.

Our first try was …

No more emails are being sent on compilation errors from the automation server

by Tsvi Mostovicz - Thu 06 December 2018

Context

We have an old and arcane VCS at work. To get it to work with Jenkins, I created a job that polls the VCS once an hour and creates commits in a locel Git repo if any changes are found. The git commits hold in their description all of …

The highs and lows of UVM

by Tsvi Mostovicz - Thu 19 June 2014

I just read this article (Accellera DAC 2014 Breakfast—What Engineers Really Think About UVM). They hit a few interesting points.

I'd like to add another few points that I think were missed in this discussion.

The highs

  • UVM helps the developer create reusable components (though I have seen UVM …

UVM register model coverage woes - part 2

by Tsvi Mostovicz - Mon 24 March 2014

So after I described my troubles with the UVM register model's coverage in my previous post, I revisited the issue in a slightly different context and discovered the current solution was rather lacking.

Register block coverage

In the previous example, coverage was taken for a value written via the register …

The crooked ways of UVM's register model's coverage methods

by Tsvi Mostovicz - Mon 02 September 2013

"Welcome to the world of Coverage"

I have been dabbling now for a couple of weeks with coverage. Working my way through the SV LRM, looking at some examples and running a few simple cases.

My first case was some protocol coverage. We wanted to verify certain types of traffic …

uvm_config_db vs uvm_resource_db, where they come from and what are they good for

by Tsvi Mostovicz - Tue 25 June 2013

The origins

According to a story I was told, the origin of the uvm_resource_db stems from the fact that certain simulators (if I remember correctly Mentor's Modelsim/Questa), were unable to cope with the dot-notation. Eg. You could not write m_object.m_field = 1, instead you'd have to put the field …

My issues with uvm_reg's predict method

by Tsvi Mostovicz - Mon 29 April 2013

A couple of weeks ago, I created a status register callback class.

The purpose of it was to create a built-in scoreboard allowing me to predict the value of a status register based on the known status signal's input.

I'll maybe post the code in a sometime in the future …

Always assert your randomizations

by Tsvi Mostovicz - Mon 18 March 2013

Today I was bitten twice by the same issue: randomization.

When you randomize something you should always assert the randomization. This will allow you to find the source of the problem much quicker. I lament the fact that UVM sequence macros do not assert the randomization by default. Instead they …

Don't use null as a sequencer argument to uvm_reg_sequence

by Tsvi Mostovicz - Sun 17 March 2013

Back when I started using UVM, I had no use for a register model for the specific unit I was testing. As such, sequences were written which needed a sequencer which would hand the items in the sequence to the driver.

Over time, we moved to use the register model …

Time to go to bed

by Tsvi Mostovicz - Sun 17 September 2006

Just logged three hours of work on this project (LDAP Authentication).

The goal: Setting up a LDAP server on my home PC running Kubuntu and having my laptop using the information from there to log onto a clean account @ home. Authentication should be done versus the desktop box. To manage …

Introduction

by Tsvi Mostovicz - Thu 14 September 2006

Just got my student's job. I am responsible to bring the linux comps in 104 to a workable situation.

I'll use this blog to update on my progress. Any help is welcome.

Checking out:
  • Comp running CentOS. Better start learning Red Hat.
  • Networks are unavailable. If we want a true …

Late at night

by Tsvi Mostovicz - Wed 03 May 2006

Here I am again... 2:00 AM, thinking I should actually go to bed.

Words are very powerful, too powerful.

Words are the vessels of our thoughts. We don't think in words, we translate ideas to words, body language, pictures and sounds. Yes, sounds not words. Consider growling and howling …

A thought on ideas

by Tsvi Mostovicz - Fri 28 April 2006

Weird how ideas come and go. At first I was sure I had millions of them floating through my head, now that I'm about to post nothing comes to mind. So after some pondering here it comes, one of those millions floating.

Where do ideas go after we pass away …

Joining the great blogosphere

by Tsvi Mostovicz - Fri 28 April 2006

A small note just to be able to put myself on the map. As the saying goes: "Be there or be square".

I have been having a lot of thoughts floating freely through my mind lately, so I decided to create this blog. Think of it as Dumbledore's pensieve.

Also …