Chcę wdrożyć sieć Boolean w FPGA. Oświadczenie dotyczące sieci Boolean podano poniżej.
Losowa sieć Boolean składa się z N losowopołączonych węzłów, z których każdy ma stan binarny: włączony lub wyłączony (1 lub 0). W sieciach NK każdy węzeł otrzymuje dokładnie K wejść wybranych losowo z innych węzłów w sieci i w większości przypadków dozwolone jest samo połączenie (rysunek 1 pokazuje przykład topologii RBN).
Stan każdego węzła w sieci w czasie t + 1jest określany przez stany jego wejść w czasie t przez losowo wygenerowaną funkcję logiczną, którą można przedstawić za pomocą tabeli przeglądowej dla każdego węzła (patrz tabela 1). Zazwyczaj funkcje Boolean nie zmieniają się przez cały okres istnienia sieci. W RBN funkcja Boolean dla każdego węzła mapuje każdą z 2 możliwych kombinacji wejściowych do stanu wyjściowego 0 lub 1.
Sieć otrzymuje losowy stan początkowy wedługprzypisanie każdemu węzłowi wartości 0 lub 1. Wartość każdego węzła w następnym kroku jest określana przy użyciu stanu jego wejść i funkcji Boolean każdego węzła.Wszystkie węzły są aktualizowane w tym samym czasie (synchronicznie). Stan sieci jest generowany, a następnie używany do określenia następnego stanu itd. Przykład aktywności sieciowej przedstawiono na rysunku.
Naprawdę chcę to wdrożyć w verilogu. Czy ktoś może mi podać trochę szczegółów na temat RBN?
po przeczytaniu całego oświadczenia oBoolean Network, mogę podzielić mój problem na trzy etapy, które są Najpierw chciałbym zaimplementować sieć binarną z zadaną funkcją węzła. Po drugie, chcę zaimplementować losowy blok funkcyjny. Po trzecie - połącz oba. BTW
generować inną sieć za każdym razem po zresetowaniu lub w czasie kompilacji
Odpowiedzi:
0 dla odpowiedzi № 1Losowa funkcja boolowska f(d_0, d_1,..,d_(k-1) )
może być reprezentowany jako 2^k
do 1
multiplekser z 2^k
losowe dane wejściowe i k
"wybierz" wejścia wybrane z N
wyjścia innych multiplekserów. Jeśli chodzi o wymagania dotyczące czasu, umieść zaczepy na liniach. Wylosowałem dla ciebie podstawowy blok Twojej sieci:
Będziesz potrzebował takich N bloków ze sobą połączonych Q"s
. Będziesz musiał wdrożyć połączeniegenerator "N wybierz K", na podstawie wejścia reprezentującego numer wyboru, i podłącz górne wejścia do jakiegoś generatora liczb losowych (czas kompilacji lub nie, twój wybór).