(디지털)"하는

X

xldu

Guest
만약 테이블에 가변 길이 값을 빠르게하는 방법은 RTL에서 테이블을 보이는가?
CAM을 사용하여 무엇에 대해서?
사람은 RTL 수준에서 테이블을 찾고 실행하는 몇 가지 방법을 소개시켜 줄까?
감사합니다!

 
한 내 대답은?
비트 스트림을 디코딩 할 때, 난 디코딩 테이블을 보일 것입니다.대형 테이블 및했습니다
varible 길이 콘텐츠, 그래서 난은 RTL에서 어떻게 구현해야할지 모르겠다.테이블의 RAM에 저장할 수 있지만 그것을 저장하는 방법?사람이 여러 세그먼트로 테이블을 나누어 말하지만, 좋은 방법을 나누어가?
아무도 날 도와 드릴까요?

 
안녕,
1.
일부 공급 업체 CAM 코어를 제공하고, 카메론 시뮬레이션을 lib 디렉토리를 확인할 수있습니다 다음, 당신은 RTL에서 사용할 수있습니다.
2.
되어 있지 않다면 조회 테이블을 빌드하려면 배열 폭 최대 길이를 사용하여 배열을 Verilog reg 사용할 수있습니다.
대형 죽어 지역 소비로 이어질 수있습니다 이런식으로 보이는 경우가 큰 테이블입니다.

3.
FPGA를 타겟으로하는 경우, 다음 CAM 또는 LUT 또는 FPGA에서 뭔가를 사용하고있습니다.

 
감사합니다!
우리 목표의 ASIC, 그리고 크기가 너무 크지 않을 수있습니다.
그래서 regsiter 배열을 잘하지 않습니다.
우리는 RAM에 테이블을 저장 싶지만, 중요한 문제는 어떻게 콘텐츠를 찾아 무엇입니까?
예를 들면 :
때, 내가 RAM에 테이블을 비트 스트림을 비교해야 하나의 비트 스트림을 수신, 출력을 찾고 최대의 결과입니다.그렇지 않으면, 비트 스트림을 고정 길이되지 않습니다.
당신은 그것에 대한 어떤 조언을해야합니까?

 
당신은 수정할 수 및 ASIC를 타겟팅하는 thatn 누구 컨텐츠 / 크기 동적 보이는 테이블이 필요 언급했습니다.여기에는 모순이 ...첫째, 하드웨어 구조를하거나 크기를 수정할 수없습니다 / 동적으로 변경.

당신은 무엇을 할 수있는 최초의 상단에 메모리가 한계에와 ROM의 테이블에 저장 될 데이터의 수를 결정하여 고정 크기의 ROM을 디자인하는 것입니다.그렇다면 테이블의 값을 ROM을 하드 코드.당신은 조회 테이블을 만들었습니다 이쪽으로.유일한 단점은 여기에 당신이 ROM의 내용을 나중에 수정할 수없습니다.이 방법은 프로세서의 지시에 따라 저장됩니다.

만약 당신이 RAM에이 테이블 implemet, 당신은 때 칩의 전력 looses 다시 안으로 데이터를 로드할 외부 ROM을 사용하여이됩니다 극복하기 위해 모든 데이터를 잃어버리게된다

 
조회 테이블, 만약 당신이 그것을 건설 DFF를 사용하기

구조체 사례를 직접 사용할 수있습니다.만약 당신이

사용하는 ram은, 당신 programmble에 파일을 준비한다

숫양.

안부 인사xldu 썼습니다 :

만약 테이블에 가변 길이 값을 빠르게하는 방법은 RTL에서 테이블을 보이는가?

CAM을 사용하여 무엇에 대해서?

사람은 RTL 수준에서 테이블을 찾고 실행하는 몇 가지 방법을 소개시켜 줄까?

감사합니다!
 
등록 파일을 보여 - 테이블을 만들 수있습니다.

 
안녕,
내가 어떻게 보여 - 최대 테이블을 디자인하는 것 같아 많은 귀하의 디자인의 요구 사항에 따라 달라집니다.
1.만약 좀 봐 최대에 대한 입력값은 약간 다릅니다 길이, 최소 및 최대 길이를 정의하려고
----> 분 길이는 귀하의 단위 테이블의 깊이가 될 것입니다.
----> 최대 Leng 필요한 테이블에 얼마나 많은 단위를 정의하는 것입니다
2.ex : 당신이 [a2a1a0] [b4b3b2b1b0] 16 비트의 데이터를 볼 필요가
----> ([a2a1a0] 최대) = 8 단위 테이블에 테이블을 좀 나눠
-----> ([b4b3b2b1b0]) 최대 = 32 ----> 단위 테이블의 크기 = 32x16
당신이 볼 수 있도록 최대 병렬 8 단위 테이블 - "해독 -"당신의 욕망 값을 조회

희망이 도움이됩니다.

 
당신이 사건을 진술 즉 combinational 로직을 사용할 수있습니다

예 :

cosout_p : (index_in) 프로세스
에 BEGIN
사례 index_in IS
때, "000000"= "cosout"= "11111111111111111111111";
언제 "000001"= "cosout"= "11111111101100010000111";
언제 "000010"= "cosout"= "11111110110001000110110";
언제 "000011"= "cosout"= "11111101001110101010101";
언제 "000100"= "cosout"= "11111011000101001011111";
언제 "000101"= "cosout"= "11111000010100111111011";
언제 "000110"= "cosout"= "11110100111110100000101";
언제 "000111"= "cosout"= "11110001000010010000100";
언제 "001000"= "cosout"= "11101100100000110101111";
언제 "001001"= "cosout"= "11100111011010111101011";
언제 "001010"= "cosout"= "11100001110001011001011";
언제 "001011"= "cosout"= "11011011100101000001101";
언제 "001100"= "cosout"= "11010100110110110011000";
언제 "001101"= "cosout"= "11001101100111110000001";
언제 "001110"= "cosout"= "11000101111001000000001";
언제 "001111"= "cosout"= "10111101101011101111100";
언제 "010000"= "cosout"= "10110101000001001111001";
언제 "010001"= "cosout"= "10101011111010110100100";
언제 "010010"= "cosout"= "10100010011001111001100";
언제 "010011"= "cosout"= "10011000011111111011111";
언제 "010100"= "cosout"= "10001110001110011101100";
언제 "010101"= "cosout"= "10000011100111000011110";
언제 "010110"= "cosout"= "01111000101011010111010";
언제 "010111"= "cosout"= "01101101011101000100000";
언제 "011000"= "cosout"= "01100001111101111000101";
언제 "011001"= "cosout"= "01010110001111100110100";
언제 "011010"= "cosout"= "01001010010100000001100";
언제 "011011"= "cosout"= "00111110001100111111001";
언제 "011100"= "cosout"= "00110001111100010111000";
언제 "011101"= "cosout"= "00100101100100000010000";
언제 "011110"= "cosout"= "00011001000101111010011";
언제 "011111"= "cosout"= "00001100100011111011001";
언제 "100000"= "cosout"= "00000000000000000000000";
사람이있을 땐 = "cosout"= (다른 분들에게도 = "'0 ');
최종 사례;
프로세스 끝내기를 cosout_p;

 
모두 감사합니다!

대형 크기 순차적으로 찾고있는 테이블의 최대 시간의 낭비가 발생할 것입니다 결과는 것입니다 CAM 사용합니다.난 크기와 시간에 균형을 유지해야합니다.누구도 더 많은 조언을합니까?아미에
테이블 구조에 대한 귀하의 솔루션을 나를 위해, 당신은 더 잘 설명할 수있는가?때문에
방법을 찾아 - 테이블 중요합니다!

, avimit에
같은 테이블에 매우 큰 거대한 크기의 결과가 될 경우에는 구조 (DFF)를 사용하여!

 
안녕하세요 xldu,
말해 무엇을 정확하게 구현, 그리고 난 당신이 더 나은 edvice 줄 수있을 싶어요.
반면에 저장된 다른 값을 선형 보간을 사용하여 계산할 수있습니다 일부 응용 프로그램에서는 단지 몇 가지 값이 조회 테이블의 일반적인 간격으로 저장됩니다.
Kr,
Aviral 미탈

 
안녕,
이건 내 CAM (검색 단위 테이블)의 마음의 코드입니다

코드 :reg [승 - 1 : 0] cam_reg [D 조 - 1 : 0];

reg [D 조 - 1 : 0] 일치;

정수 난;

(posedge 클럭 또는 negedge 재설정)은 항상 @

(! 리셋)하는 경우

시작

검색 결과 "= (D 조 (1'b0));



그 밖의

시작

은 (i = 0; 난 "D 조; 전 = 내가 1) 일치 [전]"= (search_data == cam_reg [난]);

끝----> 그리고, 단순히 "등록 ----> 검색 결과"와 일치하는 디코딩
 
Verilog HDL을 그냥 perporly, 귀하의 조회 테이블 bulid에 Comercial 모델을 사용하여 CAM CAM 구조를 표현할 수 없다

 
jackson_peng 썼습니다 :

Verilog HDL을 그냥 perporly, 귀하의 조회 테이블 bulid에 Comercial 모델을 사용하여 CAM CAM 구조를 표현할 수 없다
 

Welcome to EDABoard.com

Sponsor

Back
Top