본문 바로가기

digital logic7

xilinx memory(RAM) 종류 xilinx FPGA에서 memory를 setting할때 종류가 여러개가 나옵니다 오늘은 그 중에서 RAM의 종류에 대해 알아 보겠습니다. RAM type의 종류는 아래와 같이 3가지 입니다 Single Port RAM Simple Dual Port RAM True Dual Port RAM 이것들을 하나하나 봅시다 1. Single Port RAM 우선 그림을 보면 아래와 같이 나오게 됩니다 이름에서 의미하는 것처럼 write/read 시에 사용하는 address가 1개 입니다. 그래서 이걸 구분하는 enable 신호가 필요하죠 여기선 wea신호 입니다. 먼저 말하겠지만 xilinx에서는 port를 구분할때 뒤에 a, b이렇게 구분합니다 위에서는 전부 a로 끝나는걸 보면 해당 port는 전부 memory.. 2021. 1. 26.
xilinx line memory 만들기 보통 verilog를 사용하여 필요한 block을 만들 때 memory를 사용해야 할 때가 있습니다. 직접 만들어 사용해도 되지만, 요즘 tool들은 자신들의 IP의 동작대로 memory의 simulation file을 제공합니다. 그걸 어떻게 우리가 제공받을수 있는지 확인해봅시다 우선 아래와 같이 vivado를 여신담에 아무 project를 만듭시다 우리는 memory만 만들꺼니 간단하게 RTL project로 고르고 package도 아무거나 누릅시다 이렇게 선택해서 만들게 되면 아래와 같은 창이 뜨는데 여기서 왼쪽의 IP Catalog를 누릅시다 그럼 위의 그림에서 오른쪽에 우리가 어떤 IP를 만들건지 물어보는 창이 나오는데 여기서 'block'이라고 검색을 하면 아래와 같이 matching 된 IP.. 2021. 1. 26.
관성지연, 전달지연 인터넷에서 verilog code를 보다보면 아래와 같은 구문들이 가끔 눈에 보인다 wire #10 A; always @(posedge clk) B 2020. 10. 20.
blocking vs non-blocking assignment(feat. race condition) RTL 설계를 하다 보면 내가 원하는 설계 block을 설계하는 일도 있지만, 해당 block을 구현하기 위해 testbench를 따로 구현해야 하는 일도 있다. 신입 때는 아무 생각 없이 선배들이 전달해준 testbench를 기반으로 수정하여 사용했지만, 시간이 지날수록 내가 설계를 직접 해야 하는 일이 생겼었다. 그래서 verilog로 설계하던 것을 최근에 systemverilog로도 해보고 하다 보니 blocking, non-blocking으로 인해 결과 값이 제대로 나오지 않는 문제들이 simulator마다 다르게 발생하는 것을 경험했다. 따라서 오늘은 이 부분에 대해 까먹지 않을수 있도록 정리를 해놓으려고 한다. ----------------------------------------------.. 2020. 10. 19.
signed arithmetic verilog 하면서 제일 헷갈리는게 signed arithmetic 인거같다 ​ 매번 할 때 마다 나만의 부호 bit 체계로 하려다보니 설계할때 너무 비효율적이라 ​ 이번에 공부하면서 제대로 해볼려고 한다. ​ 우선 참고한 자료는 첨부파일 있으니 참조 우선 signed 선언은 일반적으로 선언하는 것뒤에 signed 붙이면 그걸로 끝나는 것같다 ​ reg → reg signed wire → wire signed ​ 해당 파일에서는 3bit 기준으로 정리를 했는데 ​ 예제에 쓰인 data는 위와 같은 표를 가지고 있고 ​ 음수는 2의 보수취하면 되는 것으로 보임 ​ 그리고 일반적으로 3bit + 3bit하면 4bit이 되는 것이 당연한 규칙 ​ 만약에 손으로 연산할 경우를 고려한건지 아니면 실제 연산을 고.. 2020. 10. 16.
Clock gating 우선 clock gating이란 F/F에 들어가는 Clock을 제어하는 방법이라고 볼 수 있는데 ​ 사용자가 해당 모듈을 사용하지 않을 경우에는 clock을 주지 않는 것이다. ​ 이렇게 되면 F/F은 그냥 현재 값을 유지하는 상태가 될 것이고, 사용하지 않을때는 data가 뭐가 출력이되도 상관이 없다면 이로인해 power 측면에서 이득을 볼 수가 있게 되는 것이다. ​ 그래서 구글링을 해서 찾아본 power에 관한 수식은 아래와 같고​ 이걸보면 static과 dynamic으로 나뉘는데 내가 일하고 있는 front-end에서는 ​ dynamic 쪽을 RTL 설계 당시에 반영하여 줄일수 있는데 이를 또 구글링해서 찾아보면 ​ 이렇게 회로도로 간략하게 보이는데 F/F에 enable 조건만 잘 맞춰주면 clo.. 2020. 10. 14.