2011-05-12 5 views
2

Simulink (Xilink Library)의 타이밍 신호 개념을 이해하는 데 약간의 문제가 있습니다. 내가 예와 함께 설명합니다Xilinx Simulink의 타이밍 신호 이해

,

는 직렬 비트 스트림이 있고 심지어 비트 홀수의 합을하고 싶습니다 가정,

그래서 당신은 아마 이런 matlab에 코드 뭔가를 작성합니다 :

Data_Bits=[1 2 3 0 4 5 1 2 0 9]; 

Sum_Bits=[]; 
for i=1:length(Data_Bits)/2 
    Sum_Bits=[Sum_Bits Data_Bits(2*i-1)+Data_Bits(2*i)] 
end 

잠시 동안,이 코드가 작동하지 않을 수있는 모든 최적화 및 코너 사례를 제쳐두고 무시합니다.

이것을 하드웨어로 구현해야한다고 가정하면 Data_Bits은 연속적으로 이됩니다. 따라서 기본적으로 2 입력 비트를 가져 와서 출력을 생성하기 위해 2 클럭 사이클을 기다립니다.

따라서 2 클럭주기마다 출력이 있습니다.

자일링스의 타이밍 신호를 관리하여 올바른 출력을 얻을 수 있습니다.

그래서 중간 결과를 출력하고 싶지 않습니다.

어떻게 구현할 수 있습니까? 무료 실행 클록 (카운터)으로 인 에이블 입력을 사용하려고 생각하고 있습니다.

하지만 실제로 복잡한 시스템을 설계하는 동안 어떻게 관리해야합니까?

하드웨어 설계에 대한 많은 경험이 없습니다. 그래서 제 질문이 위험 할 정도로 간단하고 STUPID 인 경우, 제 정보에 대해 유감입니다.

키란가

답변

2

, 당신은 동시에 하나의 클럭 틱 높은 무언가에 연결 에이블 신호와 출력 핀에서 사용 가능한 레지스터를 사용 레지스터에 들어가는 값은 출력에 표시 할 값입니다.

"유효한"신호는 대체 클록 사이클에서 '1'과 '0'사이를 토글합니다. 따라서 플립 플롭을 사용하여 인버터를 통해 피드백되는 출력을 사용할 수 있습니다. (davidd의 코드에서는 //tflipflop으로 주석 처리 된 라인에서이를 볼 수 있습니다).

n주기에 한 번만 유효한보다 복잡한 시스템을 사용하는 경우 모든 n주기를 재설정하는 카운터를 사용하고 재설정 펄스를 "유효한"신호로 사용할 수 있습니다.

+0

자세한 설명을 읽어 주셔서 감사합니다. 나에게 설명해 주셔서 감사합니다. 내 모델에서 이것을 시도 할 것이다. – Kiran

0
Input stream -------------> AddSub -> register -> output stream 
Input stream -> register -> AddSub register 
             register 
          counter -> register(enable) 

이 입력 스트림과 1 개주기 지연 입력 스트림을 추가 읽는

감사합니다. 가산기의 출력에 레지스터를 활성화하려면 1 비트 카운터 (또는 T- 플립 플롭)를 사용하십시오.

찾고 계신가요?

또한 복잡한 시스템을 실행하는 동안 이것을 "관리"한다는 것은 무엇을 의미합니까? 이 구문의 verilog 또는 vhdl은 매우 간단하며 시스템 생성기 블록 대신 사용할 수 있습니다. 이 "유효"인 경우에만 변화로 출력을 원하는 경우

//note: initialization/reset and limit handling is not included and would need to be considered. 
[email protected](posedge clk) 
begin 
    databits_1dly <= databits; //create a once cycle delayed version of databits 
    sum <= databits_1dly + databits; //adder 
    every_other <= !every_other //t flip flop. 
    if (every_other) //invert if you want the other every_other 
     sum_every_other <= sum 
end 
+0

안녕하세요, 답변 해 주셔서 감사합니다. 타이밍 신호와 동기화에 대해 상당히 잘 알고 있습니다. 감사합니다. – Kiran