Jak to zrobić część wybrać za pomocą parametrów w Verilog?

O

otis

Guest
Muszę zrobić część wybrać za pomocą parametrów, jak mogę to zrobić .. na przykład parametr config = 3; Parametr znacznik = 6 reg [31:0] test; można używać czegoś takiego test = test [FÄLG]; To jest OK z bitem wybrać w przypadku, jeśli chcę część wybrać to, co należy zrobić ? będzie ok tak? skok parametr = "07:04", wyjście [04:00] test = [skok]; Każda metoda zalecana do części wybierz z parametrami? Dzięki!
 
Korzystanie bitowe zadania tak:
Code:
 parametru OFFSET = 4; for (i = 0; I
 
dzięki za odpowiedź. Ale myślę, że byłoby liitle zbyt dużo kodowania w moim przypadku ..... bo jak wspominałem wcześniej mam 32 bit SFR. jest 8 różnych wartości przechowywane w różnych bitów. jest coś takiego testu reg [31:0]; parametr cnt / / bitów positons [03:00] cfg parametr / / bitów positons [09:04] stan parametru / / bitów positons [13:10] i tak dalej! Mam korzystać z tych rejestrów w znacznym stopniu w mojej kodu, takich jak test [03:00]
 
Muszę przyznać, że używam Verilog tylko sporadycznie, przy przenoszeniu IP lub na życzenie klienta. Więc nie jestem, że zna zaawansowanych "sztuczek" tas Jestem dotyczące VHDL. Znalazłem jednak w lanuguage specyfikacji, że jest tworem o nazwie indeksowane w niepełnym wymiarze wybrać , które również pozwala na zmienną wybiera. Zobacz przykłady z IEEE 1364-2005:
Code:
 big_vect [0 +: 8] / / == big_vect [7: 0] big_vect [15 -: 8] / / == big_vect [15: 8] little_vect [0 + : 8] / / == little_vect [0: 7] little_vect [15 -: 8] / / == little_vect [8: 15] dword [8 * sel +: 8] / / Zmienna część-wybierz o stałej długości
Myślę, że to wynika z przykładów, jak to działa.
 
Można też po prostu użyć `zdefiniować np.` zdefiniować JUMP 07:04 wyjście [04:00] test = [`JUMP];
 
Wydaje się to być elegancki sposób. Dzięki za tą wskazówkę
 

Welcome to EDABoard.com

Sponsor

Back
Top