카테고리 없음

vivado second project gate2.v 제작(1)

이제팔 2023. 4. 13. 11:18

목차

1. gate2.v file을 생성하기 위해 and2.v 를 copy

해서 사용해보겠습니다.

2. gate2.v에 대한 simulation을 

       (1) GUI를 통한 반복 신호 설정

       (2) tcl file을 활용한 simulation

3. gate2.v에 대한 회로도 확인

       (1) RTL회로도

       (2) Synthesis 결과 회로도

를 확인해보겠습니다.

 

어제 생성한 comb_lab파일을 열어서 작성해보겠습니다.

gate2.v file을 생성하기 위해 and2.v 를 copy해서 사용해보겠습니다.

save as로 저장해서 gate2.v파일을 만들어주세요.

이렇게 하는 이유는 comb_lab안에 파일을 전부 넣기 위해서입니다.

 

 

Bitwise Operator들을 적용한 조합회로에 대한 회로설계를 하겠습니다.

 

 파일이름을 gate2로 설정하겠습니다.

gate2 에 대한 Verilog HDL code를 작성하겠습니다.


module gate2(
    input a, b,
    output y_not, y_and, y_or, y_xor, y_nand, y_nor, y_xnor
    );
    
assign y_not = ~a;
assign y_and = a & b;
assign y_or = a | b;
assign y_xor = a ^ b;
assign y_nand =~(a & b);
assign y_nor = ~(a | b);
assign y_xnor = ~(a ^ b);

endmodule

 

작성한 gate2.v를 source에 올려주세요

올라간것을 확인 (1편 확인)

gate2.v를 눌러서 오른쪽 버튼 set as top을 눌러서 제일 위로 올려주세요 

shematic을 확인해보겠습니다.

simulation을 해보겠습니다.

어제 만든 and2.tcl 파일을 불러와서 열어보겠습니다.

file + open file을 통해 불러왔습니다.

 

생각해보니 and2.tcl파일을 gate2.tcl파일로 바꿔서 매칭되게 하면 더 좋았을것 같네요 앞으로는 그렇게 해야겠어요

 

다음 source + 주소를 작성하여 simulation을 돌려보겠습니다.

 

나중에 글 쓰면서 확인해보니 꼭 source 치기 전에 simulation을 미리 눌러서 열어놔야합니다. 안그러면 에러가 뜨더라구여

 

tcl파일을 이렇게 적어줍니다.

restart

add_force a {0 0ns} {1 50ns} -repeat_every 100ns
add_force b {0 0ns} {1 25ns} -repeat_every 50ns

run 200 ns

Simulation이 열린것을 확인할 수 있습니다.

Run Synthesis를 해보겠습니다.

number of jobs 의 숫자가 커질수록 더 좋은 결과를 얻을 수 있습니다.

왜냐하면  결과를 얻기위한  반복할 job의 수 라는 이야기 입니다.

그 결과 delay를 최소화 하거나 사이즈를 최소화할 수 있습니다.

 

Synthesis의 Schematic을 해보겠습니다.

gate2.v는 Synthesis의 Shematic을 확인하는 것으로 마치겠습니다.~

 

회로도를 보는방법이 RTL은 코드로부터 로직function으로 우리가알고있는 게이트레벨로 보여주는 방식이고,

Synthesis 는 그 function을 타겟팅하고 있는 반도체에 최종라이브러리로 변환하는 작업이 Synthesis라고 합니다.

이 Synthesis가  xilinx의 라이브러리로 구현이됩니다.

이 부분은 추가적인 설명을 덧붙여서 정리 예정입니다.