본문 바로가기

전체 글33

[Nexys4 DDR 프로젝트] Multi 7-Segment 구현 안녕하세요. VeriLog입니다. 이번 시간에는 Nexys4DDR에 있는 7-segment 사용법에 대해서 배워보려고 합니다. 지난 시간에 Behavioral Modeling 방법을 사용해 7-Segment Decoder를 만들어 보았습니다. 하지만, 한가지 문제가 있었습니다. 바로, 임의의 숫자를 표시하면, 그 숫자가 모든 7-segment에 표시가 된다는 문제점 이었습니다. 이는 모든 Cathode가 이어져 있기 때문입니다. 이 문제점을 해결하기 위해서는, Anode를 켰다가 껐다가를 반복하면서 원하는 숫자를 표시해야합니다. 예를 들어 4개의 7-Segment에서 0123이라는 숫자를 표시하고 싶다면, 1. Anode[3] On, Others Off2. Cathode —> 0표시3. Anode[2] .. 2019. 3. 10.
[Nexys4 DDR 프로젝트] Behavioral Modeling 안녕하세요. VeriLog입니다. 오늘은 HDL의 마지막 방법인 Behavioral Modeling에 대해서 배워보고자 합니다. Behavioral Modeling은 C언어와 가장 유사한 방법이라서, 사용하기에는 제일 친숙하지만, Vivado가 Synthesis하는 과정에서, LUT나 Flip Flop들을 지나치게 많이 사용할 수도 있는 단점을 가지고 있습니다. 따라서, Gate-Level, Dataflow Modeling과 적절하게 사용해야 좋은 Hardware Design을 할 수 있습니다. Behavioral Modeling은 설계의 기능을 알고리즘 위주로 기술하는 방법입니다. Initial, Always 등의 구문을 주로 사용하는 방식입니다. Initial 은 Time = 0 일때 실행되는 구문이.. 2019. 2. 21.
[Nexys4 DDR 프로젝트] Dataflow Modeling 안녕하세요. VeriLog입니다. 오늘은 HDL의 두번째 방법인 Dataflow Modeling에 대해서 배워보도록 하겠습니다. Dataflow Modeling은 입력 – 출력 사이의 신호 흐름을 연산자를 사용하여 직접적으로 나타내는 방법입니다. Dataflow Modeling의 문법은 다음과 같습니다. assign (delay) (list_of_assignments) (delay)는 옵션이고, (list_of_assignment)는 LSH = RHS expression의 형식입니다. 예를 들어보면, assign #3 c = a & b ; 와 같이 표현할 수 있습니다. 이때, #3은 3unit delay를 의미하며, c 는 a와 b의 and의 결과를 얻을 수 있는 것을 볼 수 있습니다. Dataflow에.. 2019. 2. 21.
[Nexys4 DDR 프로젝트] Gate-Level Modeling 안녕하세요. VeriLog입니다. 오늘은 HDL (Hardware Design Language)의 방법 중 하나인, Gate-Level Modeling에 대해서 이야기 하고자 합니다. Digital Logic에 대해서 배워보신 분들은 (AND / OR / NOR / XOR / NAND) Gate 등에 대해서 들어보셨을겁니다. Gate-Level Modeling은 위와 같은 Gate들을 이용해서 Hardware를 디자인 하는 방법입니다. 즉, Primitive 게이트들의 연결을 통해서 모듈의 기능을 기술하는 방법입니다. Vivado는 Primitive Gate들을 사용자가 정의하지 않더라도 사용할 수 있도록 제공해줍니다. and / or / nand / nor / xor / nor / buf / not 등.. 2019. 1. 15.