Close

Testing the Address Register using Arduino

A project log for Nits Processor

8-bit TTL technology processor

cedCed 10/11/2020 at 18:100 Comments

While still working on updating the PCBs and fixing some bugs for the build, I started wondering how to massively test the modules (breadboard or pcb) and of course the Arduino came handy.

The General Purpose Address Register (GPAR) is described in this blog post. It provides a 16-bit wide address register, reset, increment and decrement functions and can publish its values to both the Adress Bus and the Data Bus.

To test the features we will need to check each functions:

The program must also make sur that the cabling is ok (either within the prototype or between the arduino and the prototype). For this we will light up all the LEDs slowly one by one in a specific order for a visual check.

The program does the following:

The artduino will stop if an inconsistency between what is retrieved and what is expected is found.

GPAR being tested by the Arduino and measured

This photo shows:

The outcome is very positive from the features perspective : everything performs as expected.

However, it must be said that the arduino is quite slow and that the maximum test frequency is 9Khz, very far from the target in the Mhz area.

Here is a full cycle of tests:


Unexpected issue

The address register is supposed to strictly work between the address x0000 and xFFFF, therefore the is no overflow detection. Therefore when the arduino program generated a value such as xFFFF, it was then incremented to become x0000 (no overflow), and then decremented and it stayed at x0000. Of course, the arduino flagged this as an error. The program was fixed to ignore this issue and consider the value ok.

Discussions