Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Projektowanie układów bramek - czy jest >N '1' na wejścia

_jta_ 22 Sty 2008 16:42 1741 3
  • #1 22 Sty 2008 16:42
    _jta_
    Specjalista elektronik

    Potrzebuję zaprojektować układ bramek, który możliwie da na wyjściu sygnał, czy
    co najmniej na N wejściach jest stan '1' - wiem, że do czegoś takiego wymyślono
    "Wallace tree", ale z drugiej strony czytałem, że to nie zawsze jest najszybsze...
    W tym przypadku byłoby pożądane sprawdzenie około 120 wejść w ciągu 10ns.

    Czy jest darmowy program do projektowania układów bramek?
    Chodzi o coś takiego, żeby podać, jaką funkcję logiczną ma spełniać układ (truth table),
    oraz jakie bramki są do dyspozycji, a program by podawał, jak je połączyć, by to uzyskać;
    dobrze, żeby mógł optymalizować według różnych kryteriów: najmniejsza ilość bramek,
    najmniejsza długość najdłuższej drogi sygnału, najmniejszy przekos różnych sygnałów...

    Alternatywa: porządny katalog znanych układów, jakie zrobiono na prostych bramkach.

    0 3
  • Pomocny post
    #2 22 Sty 2008 19:40
    lenti
    Poziom 13  

    Witam. Wiem, że cos takiego można zrobic w programie electronic workbench, ale tam nie ma tak rozbudowanych opcji (chyba że w nowszych wersjach- ja korzystałem z 5.12). Mimo to program (trzeba wybrac konwerter logiczny) tworzy układ na podstawie tabeli prawdy. Można wybrac minimalną postac funkcji, układ może byc zrealizowany na dowolnych bramkach lub na samych bramkach NAND. Niestety nie wiem czy ta odp. cie zadawala.

    0
  • #3 22 Sty 2008 21:02
    r2d2004
    Poziom 31  

    Witam!

    Tak z ciekawości zapytam. Jakich bramek (technologia) chcesz używać ?? Bo tak sobie liczę, że: 10ns/120 = 83ps :!: - chyba nawet najnowsze ECLe mogą sobie z tym nie poradzić, no ale może się mylę, nie śledzę od dłuższego czasu nowinek w tym względzie.

    Pozdrawiam
    PS No, tak z tymi bramkami (ECL GigaComm), f-my ON Semiconductor:

    http://www.onsemi.com/PowerSolutions/productList.do?id=262

    pracującymi do 12GHz można by cuda robić (teoretycznie rzecz jasna, bo praktycznie praca układów logicznych przy tak wielkich częstotliwościach to caaaała "nielekka bajka" do przełknięcia ;-) ), tylko gorzej będzie z ich dostępnością. Ciekawe, czy ON przysyła próbki do Polski, bo widzę, że można zamówić te bramki jako darmowe próbki. Typowa propagacja dla bramek podstawowych w tej technologii to 90ps:

    http://www.onsemi.com/pub/Collateral/NB7L86M-D.PDF

    ... inna sprawa, jak to polutować w warunkach amatorskich: wymiary obudowy 3x3 mm :!: Choć prawdę mówiąc znam ludzi, którzy twierdzą, że żelazkiem "lutowali" układy w obudowach BGA :D

    0
  • #4 22 Sty 2008 21:56
    _jta_
    Specjalista elektronik

    :arrow: lenti - znalazłem to w sieci - jak mi podałeś nazwę - jest nawet jakiś 30-dniowy trial najnowszej wersji. Może się nada. :)

    :arrow: r2d2004 - cała sztuka w tym, żeby nie liczyć po 1, a zrobić "drzewko" sumowania, które jest dużo szybsze (czas ~ log N).

    Na razie ręcznie zaprojektowałem układ sumatora 3 sygnały -> liczba 2-bitowa, najdłuższa ścieżka 6 bramek - czy da się mniej?
    To nie będzie lutowane, a programowane w FPGA (czy jak to się nazywa)... nie wiem, jakie największe szybkości są dostępne.
    Wikipedia:FPGA podaje, że są 2GHz, i to są bardzo szybkie - chyba bez skrócenia ścieżki sygnału nie zdążę w ciągu 10ns.
    Sprowadzenie elementów chyba nie będzie problemem; bardziej poradzenie sobie ze zrobieniem z nich dobrego układu.

    ----

    Zaprojektowałem ręcznie sumator 4 sygnały -> liczba 3-bitowa, propagacja do bitów 2^0, 2^1, 2^2 jest przez 6,7,6 bramek jak
    się staram o prosty schemat - bit 2^2 można łatwo wygenerować z propagacją przez 4 bramki (2 wejścia na NAND, negacja,
    to samo z pozostałymi 2-ma wejściami, i w taki sam sposób traktuję to co otrzymałem - dostaję z tego bit 2^2 całej sumy).
    Przy pomocy komputera doszedłem do schematów: 3 sygnały -> liczba 2-bitowa z propagacją 5 bramek do 2^0, 4 do 2^1;
    oraz 4 sygnały -> liczba 3-bitowa z propagacją 5 bramek do 2^0 i 2^1, 4 bramki do 2^2 - szybciej się chyba nie da.

    Nie mogę w ten sposób skonstruować szybkiego schematu dla 5, a tym bardziej dla 6 czy 7 wejść (do liczby 3-bitowej) -
    nawet jak wymyśliłem, że można dużą część operacji pominąć, to się zanosi na parę lat obliczeń dla 5 sygnałów.
    Potrzebny jest lepszy algorytm (oczywiście, jak to ma być szybkie, bo jak nie to coś ręcznie można ułożyć bez problemów).
    Nie wiem, czy istnieje rozwiązanie o rozsądnej szybkości - lepszej niż się uzyska składając małe bloki; uczenie się programu,
    który by to zaprojektował, pewnie zajęło by mi sporo czasu, a nie wiem, czy jest po co to robić. Dlatego mam prośbę:
    jeśli jest ktoś, kto aktualnie używa electronic workbench, albo podobnego programu, który umie zaprojektować układ mając
    do niego tabelę prawdy, i mógłby mu zadać taki problem, żeby spróbował, jakie wyniki można w ten sposób uzyskać; mogę
    przygotować te tabele, jeśli otrzymam informację, jaki ma być ich format, żeby łatwo było je wczytać do tego programu.
    Aha: układ ma być wyłącznie na bramkach NAND 2-wejściowych - tylko takie są dostępne w tym FPGA, którego używamy.

    ---

    Sytuacja zmieniła się o tyle, że okazało się, że jednak używamy FPGA o nieco większych możliwościach, przynajmniej
    jeśli chodzi o to, z jakich "cegiełek" składamy układ: są w nim LUT-y 4-wejściowe (to taki programowalny układ, który może
    realizować dowolną funkcję od tych 4-ch wejść - po prostu to jest szybka pamięć z 4-bitowym adresem, czas dostępu 0.2ns).
    Jeśli by pominąć czas propagacji między LUT-ami, to to zliczanie '1' na wejściach można by było zrobić w ciągu 2ns.
    Natomiast nie wiem, jakie te czasy propagacji są - czy może ktoś stosował układy Virtex-4 Xilinx-a i ma jakieś dane?

    0