Когда я тестирую файл computer.hdl с помощью сценария computerAdd.tst, мой аппаратный симулятор показывает мне ошибку: Нет такого встроенного чипа: RAM16K, но я уже скопировал RAM16K chip.hdl в такую папку. Кто-нибудь знает, почему?
Компьютер.hdl:
CHIP Computer {
IN reset;
PARTS:
// Put your code here:
ROM32K(address=pc, out=instruction);
CPU(inM=inM, instruction=instruction, reset=reset, outM=outM, writeM=writeM, addressM=addressM, pc=pc);
Memory(in=outM, load=writeM, address=addressM, out=inM);
}
computerAdd.tst:
load Computer.hdl,
output-file ComputerAdd.out,
compare-to ComputerAdd.cmp,
output-list time%S1.4.1 reset%B2.1.2 ARegister[0]%D1.7.1 DRegister[0]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
// Load a program written in the Hack machine language.
// The program adds the two constants 2 and 3 and writes the result in RAM[0].
ROM32K load Add.hack,
output;
// First run (at the beginning PC=0)
repeat 6 {
tick, tock, output;
}
// Reset the PC
set reset 1,
set RAM16K[0] 0,
tick, tock, output;
// Second run, to check that the PC was reset correctly.
set reset 0,
repeat 6 {
tick, tock, output;
}
computerAdd.cmp:
| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
| 0 | 0 | 0 | 0 | 0| 0 | 0 | 0 |
| 1 | 0 | 2 | 0 | 1| 0 | 0 | 0 |
| 2 | 0 | 2 | 2 | 2| 0 | 0 | 0 |
| 3 | 0 | 3 | 2 | 3| 0 | 0 | 0 |
| 4 | 0 | 3 | 5 | 4| 0 | 0 | 0 |
| 5 | 0 | 0 | 5 | 5| 0 | 0 | 0 |
| 6 | 0 | 0 | 5 | 6| 5 | 0 | 0 |
| 7 | 1 | 0 | 5 | 0| 0 | 0 | 0 |
| 8 | 0 | 2 | 5 | 1| 0 | 0 | 0 |
| 9 | 0 | 2 | 2 | 2| 0 | 0 | 0 |
| 10 | 0 | 3 | 2 | 3| 0 | 0 | 0 |
| 11 | 0 | 3 | 5 | 4| 0 | 0 | 0 |
| 12 | 0 | 0 | 5 | 5| 0 | 0 | 0 |
| 13 | 0 | 0 | 5 | 6| 5 | 0 | 0 |
Трудно быть уверенным, но, насколько я знаю, вы не «копируете RAM16K chip.hdl в такую папку» (я думаю, вы имеете в виду папку tools/builtInChips?)
RAM16K (и память) — это встроенные чипы. Если вы возитесь с определениями в папке BuiltInChips, возникнут странности.
Точно так же, если вы скопировали файл RAM16K.hdl (или другие файлы hdl подкомпонента) в папку, содержащую файл Computer.hdl, это может помешать симулятору найти правильную реализацию чипа. Попробуйте удалить эти файлы.