2016-11-24 5 views
-1

나는 잠시 동안 안정적인 최종 값이 필요한 모듈을 내 프로젝트에서 구현하려고하는데, 따라서 아래와 같이 구현됩니다. 두 가지 모두 시뮬레이션에서 동일한 결과를 보여줍니다. 도구는 동일한 하드웨어 또는 다른 것을 생성합니까?합성하는 동안 다음과 같은 스타일의 코딩이 달라 집니까?

always @(posedge clk) begin 
if(en) 
    count <= count + 1; 
else 
    begin 
    a <= count; 
    count <= 0; 
    end 

if(count == 0) b <= a; 

end 

위 코딩 스타일과 아래 코딩 스타일의 차이점은 무엇입니까? 합성하는 동안 어떤 차이가 있습니까?

always @(posedge clk) begin 
    if(en) 
     count <= count + 1; 
    else 
     begin 
     a <= count; 
     count <= 0; 
     end 
end 

always @(posedge clk) begin 
    if(count == 0) 
     b <= a; 
end 

그리고 합성을 위해 Vivado 2015.4 도구를 사용하고 있습니다.

답변

0

동일한 하드웨어 출력을 생성합니다. 기능적으로 동일한 경우 클럭 된 명령문을 하나 또는 여러 개의 always- 명령문으로 분리해도 상관 없습니다.

0

도구는 동일한 하드웨어 또는 다른 것을 생성합니까?

Vivado에서 "열정있는 디자인"을 클릭하고 직접 확인하십시오!

하지만 찾을 수있는 것은 다음과 같습니다. 차이는 없습니다.