2015-01-30 2 views
3

프로그래밍 칩과 SV 코드 시뮬레이션에 SystemVerilog (SV)가 많이 사용되었습니다. SV 구조의 9.2.2 절 참조Verilog 시뮬레이션 대 실행

"always, always_comb, always_latch 및 always_ff의 네 가지 형식의 프로 시저가 있습니다. 항상 모든 프로 시저 형식 시뮬레이션 기간 동안 계속해서 반복됩니다. "

물론 이러한 조합은 조합 논리 및 래치 논리 작성을 지정합니다. Altera는 here을 수행하면서 SV 구조가 실제 하드웨어로 귀결 될 고객에게 조언을 제공하기 위해 SV 표준을 주로 시뮬레이션을 겨냥하여 칩 OEM에게 맡기고 있습니까?

알테라는 CPLD와 FPGA를 제작하는데, 그 중 일부는 너무 비싸지 않기 때문에 (따라서 SV를 배우기위한 내 드라이브) Altera가 합성 가능하다고 축복 한 SV 구조의 서브 세트는 Quartus에서 칩으로 다운로드하기에 적합한 형태로 컴파일됩니다. 알테라는 많은 어설 션 (위 참조의 섹션 16)과 같은 다른 구조를 "지원됨, 합성을 위해 무시 됨"으로 표시합니다. 동시 어설 션을 예로들 수 있습니다.

내 결론은 여기서 얻은 새로운 정보가 있는데, 예를 들어 테스트 벤치 모듈에 대해서만 동시 어설 션을 사용할 수 있지만 즉각적인 어설 션을 어디에서나 사용할 수 있다는 것입니다.

기본적으로 SV 작동 방식에 대한 그림을 얻으려는 것입니다. 그리고 위에서 언급 한 SV 표준을 가장 잘 해석 할 수 있습니다. 감사.

+0

당신이 @ 모건 (@Morgan)에 대해 생각할 때, 저는 SV 표준을 가장 수익성있게 연구 할 수있는 방법을 좀더 명확하게 설명하기 위해 제 질문을 수정했습니다. –

+0

귀하의 답변과 귀하가 링크 한 비공식 안내서는 제가 찾고있는 것입니다. 무리 감사! –

+0

재미있는 학습 Verilog, 그것은 때때로 까다로울 수 있습니다. – Morgan

답변

5

Verilog 언어는 상당히 낮은 수준이므로 FPGA 또는 ASIC 용 하드웨어를 설계 할 때 조합 논리와 순차 논리가 있습니다. 모든 도구의 어설 션은 실제로 검증을위한 것이며, 당신이 원하는 하드웨어를 얻을 수있는 높은 수준의 개념입니다.

SystemVerilog는 시뮬레이션을위한 것이 아니라 디자인에 올바른 하위 세트를 사용하면 RTL과 포스트 합성 게이트 파일을 시뮬레이션에서 일치시킬 수 있습니다. SystemVerilog 디자인을 작성하는 방법에 따라 합성 도구가 생성하는 내용이 결정됩니다. 플립 플롭 및 래치는 사용자가 암시 한 경우에만 만들어집니다. 서로 다른 도구는 조합 섹션을 다르게 최적화 할 수 있지만 모범 사례를 사용하여 작성된 경우 모두 기능적으로 동등해야합니다.

Verilog in a day은 디자인 가이드를 제공합니다. SystemVerilog LRM은 합성 가능 구성 요소와 검증간에 스펙을 분리하지 않지만 unofficial guide to synthesising SystemVerilog은 좋은 가이드입니다.

다른 always 블록 사용에 관한 질문 부분에. 의 Verilog에서

우리는이 :

always @*    // For combinatorial logic 
always @(posedge clk) // For flip-flops (sequential) Logic 

이 래치를 암시하는 것은 경우/다른 지점 불완전한를 포함하고 그것이 사고 나 실제로 목적이라면 매우 어렵 TELL했다.

//Latch from bug or actually intended? 
always @* begin 
    if (enable) begin 
    //.. 
    end 
end 

시스템을 Verilog는 Verilog 코드로 이전 버전과의 호환성에 대한 간단한 always을 유지하지만 설계자가 의도를 설계에 명시 될 수 있도록 세 가지 유형을 추가했다.

always_comb //For Combinatorial logic 
always_latch //For implying latches 
always_ff //For implying flip-flops (sequential logic) 

always_comb 더 게이트 레벨 시뮬레이션의 불일치를 최소화 RTL 시뮬레이션을 트리거 always @*보다 엄격한 규칙이있다.

관련 문제