OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 22:19

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 99 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další
Autor Zpráva
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 29.04.2021, 17:01 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Dyť to píšu, zavazbená funkce musí být zamknutá a samozřejmě použiju přídrž signálem, nespoléhám na překlad s dynamickým hazardem jejich překladačem, transparent latch makrocela XC9500 ani přímo neumí.
https://www.xilinx.com/support/document ... erview.htm
Je to jako navrhovat tišák, já jsem zvyklej to dělat ručně, a Ty by jsi to chtěl autoruterem :D

Je tam bug v překladači, jelikož tu přídrž vstupem vyhodí, musí se ta funkce fixovat "retain", aby do toho EDIF nekecal :roll:
Xilinx Foundation 4.2i (C) 2001 ,ale jinak je to v pohodě.
Kód:
module latch1
Title 'latch 3x jinak'
Declarations

D3..D1   PIN;            "vstup D
C3..C1   PIN;            "vstup hodiny

L1   PIN istype 'com,retain';   " latch pridrzi
L2   PIN istype 'reg';      " latch pres preset/reset
L3   PIN istype 'reg_L';      " latch emulace ABEL

Equations

L1   = C1 & D1   " latch pridrzi
   # L1 & D1
   # L1 & !C1;
   
L2   := 0;      " latch pres preset/reset
L2.ap   = C2 & D2;    
L2.ar   = C2 & !D2;
L2.c   = 0;

L3   := D3;      " latch emulace ABEL
L3.lh    = C3;    

end

A do brouka se naláme
Kód:
; Implemented Equations.

/L1  =  /D1 * /L1.PIN
   + /D1 * C1
   + /L1.PIN * /C1   

 L2  :=  Gnd
    L2.CLKF  =  Gnd
    L2.SETF  =  D2 * C2
    L2.RSTF  =  /D2 * C2
    L2.PRLD  =  GND   

 L3  :=  Gnd
    L3.CLKF  =  Gnd
    L3.SETF  =  D3 * C3
    L3.RSTF  =  /D3 * C3
    L3.PRLD  =  GND   

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 30.04.2021, 08:54 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Takže pro latch použít zápis v ABELu pro latch, protože je to nejjednosušší, makrocelu použije jako klopák bez možnosti hazaradu a taky se nemusím starat o další umístění, protože klopák nemůže zařadit do minimalizace logické funkce.

Zajímalo by mě, jak se to přeloží přes VHDL, když se to zadá úplně stejnými rovnicemi, jako je ten latch s přídrží.
Ten zápis je ještě z doby GALů, kdy to jinak nešlo. Překladač PALASM ale žádnou minimalizaci nedělal.

Suksoft, mohl by jsi udělat podobný příklad s použitím VHDL včetně fittingu ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 30.04.2021, 09:17 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Zkusim pres vikend vzit tvuj priklad v Abelu, umyslne to dat do novejsiho ISE a nechat to automaticky zkonvertovat na VHDL a to prelozit. Pak se podivat na vysledek. Ocekavam ze po konverzi do VHDL se pouzije "latch pres preset/reset" (vnitrne se pouzije latch emulace ABEL - ale v tu dobu uz to bude VHDL zapis s pouzitim modulu .LH).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 30.04.2021, 09:54 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Mě jde o to, jak se přeloží ta logika, to, že je to latch jste analyzovali až ze zapojení té logiky.
Prostě jestli to bezhazardní logiku přeloží na zjednodušenou, ale s možným časovým hazardem, vynecháním logické duplicity.

Ty 3 příklady jsou funkčně zcela v pořádku, ale když neudělám v ABELu u té logické funkce "retain", tak to překrytí hrany L1 & D1 vypadne a je tam možný časový hazard na sestupné hraně hodin.

Čili jde jen o zadání pomocí té logické funkce, jestli když se to zadá přesně v tom tvaru jako mám u L1, jestli VHDL pozná, že je to LATCH a že ho správně přeloží.

Ten zápis je funkčně zcela v pořádku a v primitivních CPLD (PAL, GAL, PEEL) to ani jinak nešlo, makrocela to jinak neuměla.

ps. není to o použití "collapse" to je naopak příkaz, že se to má funkce ve fittingu zahrnout do zjednodušení, ale to dělá fitter automaticky, když tam není "keep", kterým se ta logická funkce vyjme.
Na to, aby funkci EDIF neminimalizoval je důležitý ten "retain".

Nejdřív to EDIF přeloží do pole rovnic a pak to fitting naláme do CPLD.
Aby se tam co nejvíc vešlo, tak je zapotřebí ošéfovat, aby EDIF generoval produkty které fitting jednoduše naláme do CPLD. Jinak se oba snaží, ale stejně nenajdou optimum :D

Toto je v té XAPP109 pěkně zavádějící cypovina, jelikož důležitý je jen ten první řádek a 'retain'.

"mylat node istype 'com, retain';
mylat_dg, mylat_dq, mylat_qg node istype
'com';
xilinx property 'BLOCK mylat_dg COLAPSE';
xilinx property 'BLOCK mylat_dq COLAPSE';
xilinx property 'BLOCK mylat_qg COLAPSE';
Equations
mylat = mylat_dg # mylat_dq # mylat_qg;
mylat_dg = d_input & latch_enable;
mylat_qg = mylat & !latch_enable;
mylat_dq = mylat & d_input;"

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 30.04.2021, 20:38 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Danharde toto jsem vlozil jako Abel vstup:

============

D3..D1 PIN; "vstup D
C3..C1 PIN; "vstup hodiny

L1 PIN istype 'com,retain'; " latch pridrzi

Equations

L1 = C1 & D1 " latch pridrzi
# L1 & D1
# L1 & !C1;

============

a toto je vystup po konverzi na Verilog kod

// Xilinx XPort Language Converter, Version 4.1 (110)
//
// ABEL Design Source: ab1.abl
// Verilog Design Output: ab1.v
// Created 30-Apr-2021 07:40 PM
//
// Copyright (c) 2021, Xilinx, Inc. All Rights Reserved.
// Xilinx Inc makes no warranty, expressed or implied, with respect to
// the operation and/or functionality of the converted output files.
//

module ab1(D3, D2, D1, C3, C2, C1, L1);
input D3, D2, D1, C3, C2, C1;
output L1;



// Start of original equations
assign L1 = (C1 & D1) | (L1 & D1) | (L1 & (!C1));
endmodule

============

jeste to vytvorilo NCF soubor s timto obsahem - proste at se L1 neredukuje

# Written by: Xilinx XPort Language Converter, Version 4.1 (110)
# Date: 30-Apr-2021 07:40 PM
NET L1 NOREDUCE;

==========

To jsem dal jako samostany projekt (bez NCF) a nechal jsem to prelozit. Toto je vysledek:

********** Mapped Logic **********

L1 <= NOT (((NOT L1 AND NOT C1 AND NOT L1_and0001)
OR (NOT D1 AND C1 AND NOT L1_and0001)));

L1_and0001 <= (L1 AND D1);

To L1_and0001 je to co udrzuje vystup v log1 pri zmene stavu - je to vlastne tvoje (L1 & D1).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 30.04.2021, 22:36 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Takhle se to přeloží správně i v ABELU.
Co to udělá, když vyhodíš ten retain v deklaraci L1 ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 08:37 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Aha, přeloží se to i bez NOREDUCE správně.
Mapped Logic je už v CPLD ? To to zabírá 2 makrocely ?

Problém ABELU je tedy ten, že když tam zadám projekt jako soustavu rovnic a jsou tam logické duality v hazardních stavech, tak on je při minimalizaci vyhodí, protože je v pravdivostních tabulkách považuje za zbytečné.
Logicky bude špatně řešit i asynchronní zapojení, která jsou bezhazardní díky různým zpožděním větví.

Toho si je ale navrhář CPLD v ABELu vědom, prostě nejde opsat zapojení složené z 7400 a nasypat to tam jako soustavu logických rovnic :lol:

Ale jde to tam nasypat jako soustavu propojených knihovních prvků z GDG které nebudeš dále minimalizovat. To je ale na využití CPLD dost neefektivní, ale jde to automaticky.

Začni třeba tou 10bit sčítačkou, ta je relativně nějsložitější logický problém a v GDG je zřejmě složena ze seriově zapojených 1 bit řezů.
Jak jsi ji schopen do CPLD umístit a s jakým zpožděním ?

Logický zápis v ABELu je jednoduchý :D
S = A + B;

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 13:58 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Bez NOREDUCE v UCF souboru to prelozi do dvou macrocell. Kdyz ale udelam soubor:

#PACE: Start of Constraints generated by PACE

#PACE: Start of PACE I/O Pin Assignments
NET "C1" LOC = "P96" ;
NET "D1" LOC = "P97" ;
NET "L1" LOC = "P95" ;

#PACE: Start of PACE Area Constraints
NET "L1" NOREDUCE;

#PACE: Start of PACE Prohibit Constraints

#PACE: End of Constraints generated by PACE

----------

Tak to uz prelozi tak ze pouzije jednu macrocellu.

Ten Verilog kod se prelozi na:
L1 <= ((L1 AND D1)
OR (L1 AND NOT C1)
OR (D1 AND C1));

--------------

Co mne pobavilo je upozorneni:
WARNING:Cpld:997 - Error during loading TIMESPEC AUTO_TS_P2F =
To jsem dostal za trest, ze v mem zapojeni neni ani jeden flip-flop.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 16:42 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
danhard píše:
Začni třeba tou 10bit sčítačkou, ta je relativně nějsložitější logický problém a v GDG je zřejmě složena ze seriově zapojených 1 bit řezů.
Jak jsi ji schopen do CPLD umístit a s jakým zpožděním ?

Logický zápis v ABELu je jednoduchý :D
S = A + B;


Verilog byl pouzit zakladni zapis "assign L2 = D2 + C2;"
Pro Xilinx s 10ns verzi mi to hlasi zpozdeni 19,1ns. Prelozi se to do 17 macrocell. Pro rychlost cpld 5ns je to 9,4ns.
Nenasel jsem jak obrazek pekne vyexportovat. Je to docela velke. I tak se da videt jak to system prelozil.

edit1:
Pro 10bitovy kompatator je potreba 5 makrobunek - zpozdeni 9,8ns pri CPLD 5ns.
Pro 7bitovy kompatator je potreba 4 makrobunek - zpozdeni 9,4ns pri CPLD 5ns.


Přílohy:
10bit_adder.png
10bit_adder.png [ 38.03 KiB | Zobrazeno 5791 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 18:46 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
To je 10-ti bitová sčítačka se spožděním 2d ? Jak to může mít zpoždení 2d, když tam carry prochází seriově ?
Nemůžeš věřit každý blbosti :D Ty obdélníčky na výstupu jsou v CPLD co ?
Já z toho tedy nevidím, jak to umístil do CPLD, ani neprotřebuju obrázek, stačí fitting.
Jinak při překladu do CPLD je zapotřebí také uvádět počet spotřebovaných termů, z toho je vidět, jak dobře se bude ta figura umisťovat. Makrocela má jen 5 termů, takže když je jich zapotřebí víc, tak si je půjčuje od okolních, když je potřeba větší, tak je úplně zablokuje.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Naposledy upravil danhard dne 01.05.2021, 20:46, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 20:37 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Ja nerikam ze to ma zpozdeni 2d.

Pekny odkaz je https://www.xilinx.com/support/document ... /ds054.pdf obrazek (figure) 16.
A pak hodnoty pro realny obvod z dokumentu https://www.xilinx.com/support/document ... /ds057.pdf

TPD - 5ns - to je oznaceni obvodu. Ale pozor, treba TAOI ma zpozdeni 6ns! To 5ns neznamena automaticky nejpomalejsi reakci obvodu. To jen rika zpozdeni z jednoho vstupu, pruchod kombinacni casti obvodu a vystup na jinem vyvodu.

klicove hodnoty obvodu:
Kód:
TLOGI max 1   ns
TPDI  max 0,5 ns
TF    max 1,9 ns

Zpozdeni jak jsem uz i zde psal je 3,4 ns. Ale to je nejhorsi pripad. Lze ocekavat i lepsi hodnotu. Jinak v tom TLOGI je zapocteno vstupni AND i nasledne OR. System rika ze nejrychlejsi bity jsou vyresene do 5ns a nejpomalesi reakce je do 9,4ns. Mne to pripada realne. Co se tyce tech obdelniku, tak ten uplne nahore je Half Adder a pak ty trivyvodove, to jsou 2x Half Adder.

--------------

Filozofická otazka je, bude nekdo mit hodne casu a poradne zadat ty rovnice v Abelu? Samozrejme to umozni presne rici jak presne se ma udelat vysledny obvod. U toho Verilogu uz se hodne bude muset spolehat na program jak se rozhodne to udelat. Na druhou stranu neni potreba nic vymyslet.

------------

Mapped Logic obvodu pro Dandarda:

L2(0) <= Madd_L2_Mxor_Result(6)__xor0000/Madd_L2_Mxor_Result(6)__xor0000_D
XOR
L2(0) <= ((EXP13_.EXP)
OR (EXP14_.EXP)
OR (C2(1) AND
NOT Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D)
OR (C2(2) AND
NOT Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D AND
Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D)
OR (C2(3) AND D2(3) AND
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D AND
Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D)
OR (C2(4) AND D2(4) AND C2(3) AND
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D AND
Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D));

L2(1) <= Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D
XOR
L2(1) <= ((EXP16_.EXP)
OR (EXP17_.EXP)
OR (D2(6) AND C2(6) AND C2(5) AND C2(4) AND D2(3) AND
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D)
OR (D2(6) AND C2(6) AND C2(5) AND D2(4) AND D2(3) AND
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D)
OR (D2(6) AND C2(6) AND D2(5) AND C2(4) AND D2(3) AND
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D)
OR (D2(6) AND C2(6) AND D2(5) AND D2(4) AND D2(3) AND
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D));

L2(2) <= Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D
XOR
L2(2) <= ((EXP19_.EXP)
OR (EXP20_.EXP)
OR (C2(4) AND D2(4) AND C2(3))
OR (C2(5) AND D2(5) AND C2(4) AND C2(3))
OR (C2(5) AND D2(5) AND D2(4) AND C2(3))
OR (D2(6) AND C2(6) AND C2(5) AND C2(4) AND C2(3)));

L2(3) <= Madd_L2_Mxor_Result(3)__xor0000/Madd_L2_Mxor_Result(3)__xor0000_D
XOR
L2(3) <= ((EXP10_.EXP)
OR (EXP11_.EXP)
OR (C2(4) AND D2(4))
OR (C2(5) AND D2(5) AND C2(4))
OR (C2(5) AND D2(5) AND D2(4))
OR (D2(6) AND C2(6) AND C2(5) AND C2(4)));

L2(4) <= NOT (C2(4)
XOR
L2(4) <= NOT (((EXP22_.EXP)
OR (EXP23_.EXP)
OR (NOT D2(6) AND NOT C2(5) AND NOT D2(4))
OR (NOT C2(6) AND NOT C2(5) AND NOT D2(4))
OR (C2(5) AND D2(5) AND D2(4))
OR (NOT C2(5) AND NOT D2(5) AND NOT D2(4))));

L2(5) <= NOT (C2(5)
XOR
L2(5) <= NOT (((NOT D2(6) AND NOT D2(5))
OR (NOT C2(6) AND NOT D2(5))
OR (D2(6) AND C2(6) AND D2(5))));

L2(6) <= C2(6)
XOR
L2(6) <= D2(6);

Madd_L2_Mxor_Result(3)__xor0000/Madd_L2_Mxor_Result(3)__xor0000_D <= D2(3)
XOR
Madd_L2_Mxor_Result(3)__xor0000/Madd_L2_Mxor_Result(3)__xor0000_D <= C2(3);

Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D <= D2(2)
XOR
Madd_L2_Mxor_Result(4)__xor0000/Madd_L2_Mxor_Result(4)__xor0000_D <= C2(2);

Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D <= D2(1)
XOR
Madd_L2_Mxor_Result(5)__xor0000/Madd_L2_Mxor_Result(5)__xor0000_D <= C2(1);

Madd_L2_Mxor_Result(6)__xor0000/Madd_L2_Mxor_Result(6)__xor0000_D <= D2(0)
XOR
Madd_L2_Mxor_Result(6)__xor0000/Madd_L2_Mxor_Result(6)__xor0000_D <= C2(0);


Přílohy:
half_adder.png
half_adder.png [ 9.24 KiB | Zobrazeno 5737 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 20:49 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
suksoft píše:
Ja nerikam ze to ma zpozdeni 2d.

Říkáš "Pro Xilinx s 10ns verzi mi to hlasi zpozdeni 19,1ns." to je zpždění průchodu 2 makrocel :roll:

Ty rovnice v ABELu tam zadám během 5 minut, na vtupu je 9-ti bitový seriový generátor carry a za tím 10 sčítaček bez carry.
Normálně to tam napíšu do 19 makrocel a má to zpoždění 10d.
Žačátek se může trochu sdružit a tím to trochu zredukovat.

Sorry, vidím tam namapované L2(0) až L2(6), to není 10-ti bitová sčítačka :?:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 21:08 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Verilog byl pouzit zakladni zapis "assign L2 = D2 + C2;"

Mohl by jsi používat označení běžné pro sčítačky ? Třeba 74LS83, nebo 74LS181?
Třeba A,B operandy, C carry, S, F suma, funkce atp. ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 21:15 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Pro tu rychlost 10ns jsou hodnoty z datasheetu:

TLOGI max 1,8 ns
TPDI max 1,7 ns
TF max 4,2 ns
celkem 7,7 ns

Takze 3x7,7=23,1 ns. 3d je 23,1 ns. Podle programu pruchod cipem ma zpozdeni 19,1ns. To rika program.

Jinak je videt ze se to snazi chytre dat do kombinace AND -> OR -> XOR - presne jak je to zapojene v makrobunce. Vidim nejhorsi pripad AND -> OR -> AND -> OR -> XOR -> XOR.

V priloze je 10bitova scitacka. Musel jsem to zapakovat do zip, txt nejde prilozit, asi je to utocna pripona :) .


Přílohy:
soubor.zip [700 bajtů]
254 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replica inside old CPLD
PříspěvekNapsal: 01.05.2021, 21:22 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
danhard píše:
Verilog byl pouzit zakladni zapis "assign L2 = D2 + C2;"

Mohl by jsi používat označení běžné pro sčítačky ? Třeba 74LS83, nebo 74LS181?
Třeba A,B operandy, C carry, S, F suma, funkce atp. ?


Uz jsem to u sebe upravil na A, B a S.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 99 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 6 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz