저는 Verilog의 초심자입니다. 그러나 16 개 요소의 배열을 가지고 있으며 (각 요소는 16 비트 길이입니다) 최소 항목을 찾고 싶습니다. 배열을 반환하고, 최소값을 반환하고, 배열이 하나의 인접한 항목 블록이되도록 최소 이후의 배열에있는 모든 항목을 다시 배열합니다. 비교기를 사용해야한다는 것을 알고 있지만 많은 수의 그룹을 비교하고 최소값을 결정하는 것과 관련하여 어디에서 시작해야할지 모릅니다.우선 순위 큐 구현을 위해 Verilog를 사용하여 숫자 배열로 찾기
편집 : 내가 실제로 만들고있는 것은 우선 순위 대기열입니다. 구현 된 큐 기능이 있지만 큐의 머리 부분에있는 값을 반환하는 대신 가장 작은 값으로 항목을 반환하고 저장소를 연속적으로 유지하려고합니다. 당신이 문 또는 LUT를의 수를 줄이기 위해 압력이없는 경우
e.g. {2,3,4,1,5,6,-,-}
min is 1 --> {2,3,4,-,5,6,-,-}
Rearrange so everything following the returned min is moved to the index preceding it-->
{2,3,4,5,6,-,-,-}
감사합니다. 나는 당신의 모든 제안에 유의할 것입니다. 대기열 재 포장 문제에 대해서는 아직 확실하지 않습니다. 내가이 아이디어를 가지고 노는 이유는 그것이 연속적인 저장 공간으로 재 포장하지 않으면 '낭비 된 공간'처럼 보이기 때문입니다. – GobiasKoffi
낭비 여부는 재 할당 정책에 따라 다릅니다. 항목을 대기열에 추가하는 순서를 추적 할 필요가없는 경우 배열의 유효/비어있는 벡터를 유지하고 항목을 검색하여 무료 항목을 찾을 수 있습니다. 그것은 약간의 비용이 들지만, 최소값 찾기 로직보다 훨씬 저렴합니다. – Andy
빈/전체 항목 배열은 사실 실제로 좋은 아이디어처럼 들립니다. 어쩌면 그것을 구현할 것입니다. 현실적으로, 내가 신경 쓰는 부분은 대기열에서 최소 항목을 제거하는 것이므로 어디에 있는지는 중요하지 않습니다. 도와 주셔서 감사합니다. 정말 감사. – GobiasKoffi