Testing with the RN1 Slow Tester
Tim Kutscha
James Ooi
Tue Nov 9 12:46:32 EST 1993
When reading and writing to the Slow-Test board through the VME bus, we use 16 data bits and 16 address bits. This requires using an address modifier of hex code 0x29 (which I will explain how to use later). Since address line A00 doesn't exist on the VME bus, we can only write to even numbered addresses when writing 16-bit data. Therefore, the port addresses starting at port 0 on the test board would be 0xEE00, 0xEE02, 0xEE04... and so on.
I have included several primitive funtions in the file slow-tester.lisp in the directory b:>transit>sim. Here is a list of some of them along with a brief description.
- a list of 8 numbers to drive to the forward ports. If a number is nil then the port is not driven.
- a list of 8 numbers to drive to the backward ports. If a number is nil then the port is not driven.
- a list of 8 numbers expected to come out the forward ports of RN1 after it is clocked. If a number is nil then that particular number won't be checked. A number can also be a list of two items where the bits in the received data are masked out if the corresponding bits in the second item are set to 1. The masked out number is compared to the first item when it is checked.
- a list of 8 numbers similar to :expected-fwdout but affects the backward ports.
- an 8 item list of ones and zeros telling the subroutine which forward outputs to expect driven data to come from after a clock.
- an 8 item list of ones and zeros that behaves like but applies to the backward outputs.
- (default 0) an 8 bit hex number telling the subroutine which forward inputs it should set the swallows on. The least significant bit represents forward port 0.
- (default 0) Puts RN1 in reset mode if set to 1.
- (default 1) Selects the crossbar mode. 8x4 mode if set to 1 and dual 4x4 mode if set to 0.
- (default 0) Accepts external phi1 and phi2 if set to 0 but constructs its own clock from phi2 if set to 1.
This file works closely with the rchip-test-vectors.lisp file located in the same directory. Other functions not listed are used by the functions above or by the functions in rchip-test-vectors.lisp. Talk to Henry Minsky about how the additional functions work. The file slow-tester.lisp is supposed to replace the file rsim-core.lisp which uses the RSIM package on the Lisp Machines to simulate RN1. By replacing the primitive file, we can interface the test vector file directly with the chip instead of running it through the simulator. Reading a port on the chip whose output is tristate should result in a hex value 0xFFFF return value, but 0xFFFF can also be a valid return.
When clocking the RN1 chip by setting address line A05 high, you should call the subroutine (chip-write) as follows:
(chip-write #x20 data) where the bits in data are listed in table 2. #x20 represents binary code 00100000 where the fifth significant bit on the address line (A05) is high. All other address bits (except for the base address which is already defined) are irrelevant when calling (chip-write).
When driving the switching pads to RN1 by setting address line A06 high, you should call (chip-write) as follows:
(chip-write #x40 data) where the bits in data are mapped out as in Table 3. #x40 represents binary number 01000000 with the sixth addressing bit (A06) set high. All other address bits (except the previously defined base address) are irrelevant.