Posts
Sorting arrays in SystemVerilog
Today, I ran across a problem where I had to compare two arrays, but the order did not matter. To further complicate things, each array was made up of structs.
SystemVerilog Sudoku Solver
Sudoku is a logic-based counting game, where the objective is to fill a grid with numbers such that each column, row, and block contain each number exactly once. Normally, Sudoku uses a 9-by-9 grid, but variants exist of smaller and larger grid sizes.
Perl Objects
The following post shows how I create objects in Perl. As with all things in Perl TMTOWTDI – this is just my preferred way.
AutoHotkey Always On Top
This script will toggle whether a window will always be on top when the Ctrl + Space key is pressed. It will also display a
ToolTip
.AutoHotkey Alt-Click Window Resize
Similar to the AutoHotkey Alt-Click Window Drag post, I was used to resizing a window by pressing Alt + Right mouse button to resize a window.
AutoHotkey Alt-Click Window Drag
AutoHotkey is an automation scripting language for Windows. It can be used to create macros and hotkeys, create autocorrect replacements, and even GUIs.
LSF Introduction
IBM Spectrum LSF (load sharing facility) is software to distribute work across heterogeneous resources.
Delaying a signal by some number of clocks
There can be many reasons for delaying a signal by some number of clocks – it could be to match a pipeline delay, or to form a synchronizer.
Reading an XLSX with Perl
There have been many times where I needed to extract information from an Excel spreadsheet for use in other tools, such as SoC register maps, test cases, or even information from specification. For this, I go to Spreadsheet::XLSX. This Perl module provides functions for reading from an XLSX spreadsheet in Perl.
Perl Getopt::Long
For Perl command line programs, Getopt::Long is the de facto standard. It is used to capture command line options for use within the program.
Perk/Tk
Whenever I want to create a GUI, I normally go to Perl/Tk. This toolkit if full of widgets to make a full-fledged GUI.
Verilator
Verilator is a Verilog simulator that translates synthesizable Verilog to C++ or SystemC. That translated code can then be compiled with a C++/SystemC testbench, and run in lieu of a commercial simulator.
Verilog-Perl
I’ve come across numerous times where I needed to read in a Verilog file, and extract some features from it. For example, once I read in the top-level digital module and generated glitch checkers modules for each output port. Another time, I simply wanted to lint-check a generated module for obvious errors.
List Installed Perl Modules
What Perl modules are installed for a given Perl installation? Here’s a neat one-liner from Stack Overflow.
SVN Color Diff
Perhaps you wanted to view your differences between your local modifications in your working copy in an SVN repository. You’d use
svn diff
for that, obviously. But what if you wanted to make that better?Verilog Plusargs
In Verilog, plusargs can be used to change the behavior of a program without recompiling. This can be great if there are a lot of tests to run with the same testbench.
SystemVerilog Parse Function
This function will parse through a string
in
, and separate out terms separated byseparated
, returning the resulting terms in theout
array.Jekyll Blog
Jekyll is a fantastic site generator for blogging. In fact, this blog is powered by it.