Minimalna n liczb za pomocą Verilog lub VHDL

K

kalyansumankv

Guest
Czy jest jakiś sposób, że nie mogę znaleźć minimalne N-Numbers przy minimalnym wysiłku za pomocą Verilog lub VHDL

 
Można to zrobić
ALE
[1] N stałe lub zmienne?
[2] Co to jest długość w bitach liczb?
[3] W jaki sposób są reprezentowane? Znakiem i bez znaku?
[4] Czy są jakieś ograniczenia na liczbę cykli zegara potrzebnych do wyliczenia minimalnej?
[5] Czy numerów zapisanych w pamięci (plik rejestru lub BlockRAM) lub są one wprowadzane kolejno do rdzenia?

z pozdrowieniami,
Mostafa m.Amer

 
[1] N stałe lub zmienne?
- N jest stałe powiedzmy 64

[2] Co to jest długość w bitach liczb?
- Jest to 8-bit jakości

[3] W jaki sposób są reprezentowane? Znakiem i bez znaku?
- To jest unsigned numer

[4] Czy są jakieś ograniczenia na liczbę cykli zegara potrzebnych do wyliczenia minimalnej?
- Minimalna liczba cykli[5] Czy numerów zapisanych w pamięci (plik rejestru lub BlockRAM) lub są one wprowadzane kolejno do rdzenia?
- No nie są one przechowywane w pamięci

 
HI,
Poniżej znajduje się kod VHDL, że akceptuje strumień 8-bit unsigned liczby i wydajności minimum wprowadzono strumień.

Zawiera rejestru (min) do przechowywania wartości minimalnej.Rejestr ten jest inicjowany do maksymalnej możliwej wartości 255, gdy wejście ENA jest min aktywnych jest w porównaniu do wprowadzonego numeru (NO_IN) i za pomocą 8-bitowy komparator LT decyduje whther do sklepu NO_IN w min lub zachować poprzednią wartość min nienaruszone.

wartość min zawsze outed @ MIN_OUT
każde porównanie będzie jednym cyklu zegara.

Kod:-------------------------------------------------- --------------------------------

- Inżynier: mgr inż.
Mostafa M. Amer

--

- Stwórz Data: 10:28:31 11/17/2008

- Nazwa projektu: Minimum N 8-bit unsigned numery

- Nazwa modułu: minimum_N - Behavioral

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

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;Jednostka minimum_N jest

Port (NO_IN: in std_logic_vector (7 downto 0); - Stream Input

ENA: in std_logic; - Włącz

CLK: in std_logic; - Clock

MIN_OUT: out std_logic_vector (7 downto 0 ));-- minimum strumienia

koniec minimum_N;architecture Behavioral of minimum_N jest

min sygnał: std_logic_vector (7 downto 0): = "11111111"; - Wstępne min do jak największej liczby

zacząćporównawczych:

process (CLK)

zacząć

if (ENA = '1 '), a następnie

if (CLK'event i CLK = '1 '), a następnie

if (NO_IN <min), a następnie

min <= NO_IN;

w przeciwnym razie

min <= min;

end if;

end if;

w przeciwnym razie

min <= min;

end if;

end process;MIN_OUT <= min;end Behavioral;
 
Drodzy Mostafa,

Dzięki za kod,
do mojej najlepszej interpretacji,
kodu podanego przez Ciebie będzie N-liczba cykli,
do wyjścia minimum N-Numbers ...

Anyways i wymyślił, że projekt będzie znacznie mniej niż cykli N
do obliczania minimalnych N - liczb.,
Można to zrobić z małych przetwarzania równoległego ...

 
Drodzy kalyansumankv,

Powiedział pan, numery nie są zapisywane w pamięci => one wprowadzone do rdzenia kolejno => Sądziłem, że będą one wprowadzone liczby w każdym cyklu => Wprowadzenie numerów będzie cykli N => Jeżeli uzyskanie minimum zajęło mniej niż N cykli (BTW jestem bardzo zainteresowany, aby zobaczyć swój projekt, akcje plz) nadal wprowadzenia wejść odbędzie N => doszedłem do wniosku, że nie będziesz ma potrzeby dodatkowego sprzętu, jeżeli nie będzie zwiększyć prędkość.

Am I right?Tak myślałem abot to: $: $ ale może się mylę

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Uśmiechać się" border="0" />
Z pozdrowieniami,
Mostafa M. Amer

 
Drodzy Mustafa

Tak mi powiedział, że liczby nie są przechowywane w pamięci
ale ll być o N-liczba modułów, które działa w paralle (jak pokazano na rysunku) i L
Muszę znaleźć min te numery ..

A ja podejście jest następujące,
powiedzieć, N 64,
podzielić się z numerami w grupie 8 każdego i znaleźć min z nich,
która potrzebuje 8 cykli,
i po 8 cykli you ll należy pozostawić z 8 cyfr i ponownie
powtórz aboce procesu znaleźć min tht 8 cyfr.
w całości można ll być wymagane z 8 8 cykli znaleźć min 64 numerów
Przepraszamy, ale musisz się zalogować, aby wyświetlić ten załącznik

 
hmmm
w takim przypadku rozważyć u innych skrajnych nie używać udostępniania zasobów na wszystkich i zbudować drzewo porównawczej z (log2 N) i poziomy (N-1) 8-bit komparatory LT.czystego kombinatoryczne obwodu.i gdy wielu N-numery zestawów są stosowane mogą korzystać potokowym architektury.

Z pozdrowieniami,
Mostafa M. Amer

 
Myślę, że można zrobić,
ale muszę zrobić synchrous projektu,
tak zrobiłem w ten sposób,

anyways dziękuję za replyy

 
ur Wellcome

ps: całe drzewo może być synchronizowane, ale że będziemy mieć wpływ na ogólną szybkość zegara, u może rozważyć potokowym architektury
ALE
if ur rozwiązanie działa, przytrzymaj go

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Uśmiechać się" border="0" />
 
Tak mój projekt też działa,
Bardzo dziękuję za pomoc ...

 
Złożoność problemu (por. zwłoki) * log2 (N)
Jesteś w zasadzie wykonywania binarne drzewo (stąd log2 (N)) na porównanie operacji (każdy kosztuje "porównaj delay")

Nie mam pojęcia, ile z logiką można skompresować w jednym cyklu zegara.
ale zrób combo chmury to, syntezy i obserwujemy zastój - zdecydować, gdzie i jak wielu rejestrów do wykorzystania w celu rurociąg.To jest oczywiście biorąc pod uwagę fakt, chcesz o wysokiej przepustowości.
Jeśli nie wystarczy użyć ścieżki rowerowej multi na logice.

ND.

http://asicdigitaldesign.wordpress.com/

 
Drodzy Nir Dahan,

Thanks for the advice of going for Combo Cloud,
I ll to samo ....

Pozdrowienia
Kalyan Suman

 

Welcome to EDABoard.com

Sponsor

Back
Top