[abc80] FPGA tangentbordsdel

H. Peter Anvin hpa at zytor.com
Sat Aug 1 12:24:58 PDT 2009


On 08/01/2009 03:58 AM, Anders Jansson wrote:
> Hej!
> 
> Någon har kopplat ett USB-tangentbord till ABC80 :)
> http://www.sweclockers.com/album/?id=4193
> 
> Tyvärr har jag bara programmerat lite VHDL medan ABC80FPGA är skriven i Verilog. Tangentbordsdelen i ABC80FPGA verkar även kunna hantera mus, men i RTL view ser jag bara 2 signaler från externa pinnar (keyb_ck och keyb_dat) samt 8 bitar som går till pioa (keyb_status samt 7 bitar keyb_data). Skall statusbiten vara 1 om någon tangent är nedtryckt? Om isåfall nästa tangent trycks ned innan man släpper den första, skall man då sätta status=0 en stund för att indikera att det blir en ny asciikod?
> 

Jag vet faktiskt inte... hade inte tänkt på det så mycket.  Interfacet
är samma parallella interface som riktiga ABC80 hade.  Koderna är helt
enkelt ISO-646-SE2 ("svensk ASCII typ 2") vilket han kunde ha frågat
nästan vem som helst.


> Jag kompilerade abc80-de1-17 i Windows med Quartus81. Cyclone2, EP2C20F484C7, 8048 LE (43%). Jag får samma pof och sof som originalen så det verkar OK (tyvärr har jag ingen DE1). Kompileringen går bra med en del varningar. Vore intressant att höra lite kommentarer till varningarna.
> Warning (10463): Verilog HDL Declaration warning at sddisk.v(143): "do" is SystemVerilog-2005 keyword (även på 2 andra ställen)
> Warning (10229): Verilog HDL Expression warning at keyboard.v(93): truncated literal to match 3 bits (obetydligt fel?)
> Warning (10034): Output port "dram_ba[1]" at abc80.v(48) has no driver (många av denna typ)
> Warning (10230): Verilog HDL assignment warning at display.v(117): truncated value with size 32 to match size of target (5) (många av denna typ)
> Warning (12020): Port "busrq_n" on the entity instantiation of "cpu" is connected to a signal of width 32. The formal width of the signal in the module is 1.  The extra bits will be ignored. (Finns flera av denna typ)
> Warning: Design contains 5 input pin(s) that do not drive logic (Jag har sett denna typ av (felaktig) varning förut)
>  Warning (15610): No output dependent on input pin "clock_24[1]" (m.fl.)
> Warning: Output pins are stuck at VCC or GND (Jag har sett denna typ av (felaktig) varning förut)
>  Warning (13410): Pin "fl_oe_n" is stuck at GND (m.fl.)

Dessa varningar är korrekta.  ABC80FPGA är skriven i Verilog 2001, inte
i SystemVerilog 2005; jag har använt "Di" and "Do" på flera ställen för
"Data in" och "Data out"... sen kom SV-2005 och gjorde "do" till ett
nyckelord.

"Output port has no driver" är helt enkelt för att dessa portar inte
används, och jag var för slö för att explicit driva dem till GND (i
stället får de en weak pull-up av defaultregeln.)

"Pin is stuck at..." betyder helt enkelt att den är driven till en
konstant... vilket är korrekt i de flesta fallen.

"Formal width" warnings är mest för att jag varit slö och skrivit "0"
och "1" i stället för "1'b0" och "1'b1"... Verilog (till skillnad från
VHDL) justerar bredden vid behov.

"Input pins that do not drive logic" -- en ingång som inte används i
denna design.

	-hpa


-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.



More information about the ABC80 mailing list