GLUE

Nu har jag lagt Nova-implementationen åt sidan ett tag, och ägnat mig åt PC01. Klisterlogiken i GLUE närmare bestämt.

Den har följande funktioner:

  1. De-multiplexning av adress-/data- buss
  2. Baud-rate generator.
  3. Hårddisk-interface i form av SD-kort-interface. (SPI)
  4. Se till att CPU startar i rätt mode.
  5. MMU

Ganska mycket va? Steg 1) var enklast och bestod av tre rader kod:

always @(posedge ale) begin

   ab < = {a_i, da_i};

end

Detta betyder att när insignalen ale går hög, ska 16-bitars ut-registret (signalerna definieras i en tidigare del av koden) tilldelas insignalen a_i i den övre halvan och da_i i den undre halvan. Enkelt så det förslår.

MMU verkar mer än det är. Egentligen är det bara logik som ger chip-select till RAM, ROM och I/O-bussen vid rätt tillfällen. För maximal flexibilitet tänkte jag mig att det ska finnas (m.a.o är inte MMU-delen klar ännu) fyra eller åtta fasta konfigurationer, med 0, 4, 8, 16 eller 32k ROM och 2x2k I/O eller ingen I/O.

Tyvärr är det något som är lite fel med logiken för MMU, så att 407 sk produkttermer förbrukas av 360 möjliga…