묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Verilog FPGA Program 5 (LVDS/Serdes, HIL-A35T)
Vivado 2018.3 버전이 많던데.. 뭐를 설치해야 할까요?
Vivado Design Suite - HLx Editions Update 1 (4GB 정도)Vivado Design Suite - HLx Editions - 2018.3 Full Product Installation (19GB정도)Vivado Lab Solutions - 2018.3 Full Product Installation (여러가지 버전이 있는데, 수백 MB정도)어느것을 설치해야 할까요?
-
해결됨Verilog FPGA Program 5 (LVDS/Serdes, HIL-A35T)
JTAG을 따로 구입해야 하나요?
보통 개발 보드에 JTAG이 따로 내장되어서 USB로 모든 것을 해결하는 경우도 많던데, 이 보드에는 JTAG도 따로 구입을 해야 실습이 가능한가요?
-
미해결Verilog FPGA Program 5 (LVDS/Serdes, HIL-A35T)
예제코드를 찾고 있는데 어디에서 받을수 있는지 문의드립니다.
예제코드를 찾고 있는데 어디에서 받을수 있는지 문의드립니다.
-
미해결Verilog FPGA Program 5 (LVDS/Serdes, HIL-A35T)
selectIO Interface wizard(oserdes 7:1) 관련 문의 입니다.
안녕하세요RGB 각 8bit 및 Vsync, Hsync, DE data 28bit를 OSERDES를 이용해서 LVDS 출력으로 보내려고 합니다.그러려면 어떻게 접근 해야 하나요?clk_in : 525Mhzclk_div_in : 75Mhzdata_in : 28bit 입니다.조언 부탁드립니다.
-
미해결Verilog를 이용한 FPGA 활용 기초
10 bits * 10bits 연산 구현 질문
안녕하세요. 강사님 강의를 보던 중 10 bits * 10bits 연산 구현에서 bit position을 주석으로 두셔서 살펴 보던 중 곱셈에서 어떻게 bit position을 잡을 수 있는지 질문 드립니다. 어떻게 bit position 잡는지 공부 후 16bits * 16bits, 32bits * 32bits 두 곱셈도 스스로 학습해 보려 합니다.
-
미해결Verilog를 이용한 FPGA 활용 기초
강의문의
안녕하세요. 강사님의 "Verilog를 이용한 FPGA 활용 기초" 강의를 수강 후 다른 FPGA관련 강의들을 이해할 수 있나요? 아니면 FPGA관련 문법을을 따로 공부한 후 해야할까요?
-
미해결Verilog를 이용한 FPGA 활용 기초
오타 및 내용 수정이 필요합니다.
제목과 같이 오타 및 내용 수정이 필요한 듯하여 내용 남김니다.page. 3오타: clocck -> clock page. 8xc7a35tcsg325-1 로 setting 시 implementaion시 error 발생.이미지 내용대로 xc7a35tcsg324-1 이어야 문제 없음. 시간 많이 까먹었네요 ㅜㅜ.. 열심히 기초 닦고, 다음 step 으로 진행, 보드도 구매하여 실습으로 ~~~
-
미해결Verilog FPGA Program 5 (LVDS/Serdes, HIL-A35T)
Serdes 구현을 Arty A7-5T 보드로 구현이 가능한지요?
안녕하세요 현정호입니다.HIL 보드의 수강이 아니라 Arty 보드로 강의를 구매한터라,강의내용을 이해만 잘한다면5번째 강의 LVDS (Serdes) 구현을Arty A7 -5T 보드로도 구현이 가능한 걸로 알고 있습니다만,추가 하드웨어적인 부품이나 패턴의 변동사항이 있다면 Arty A7-5T 보드로도 구현이 가능한지요?아니면 HIL-A35T 보드를 굳이 구매해야 되나요? 감사합니다
-
미해결Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
Address 증가에 대해 의문이 있습니다.
안녕하세요. mig_write, read 파일들 simulation을 돌리다가 문득 궁금해져서 질문 드립니다. 8 x 128 bits로 data를 write 할 때, 총 8번에 걸쳐 Address가 8씩 증가하는데 8씩 증가 하는 것 대신에 "4씩 증가한다." 이런 식으로 사용자가 custom할 수 있는 건가요? 아니면 IP자체에 8로 증가한다고 만들어져 있는 건가요? 질문 드립니다. 감사합니다.
-
미해결
왕초보 대학교 과제 Verilog 코드 질문
안녕하세요? 대학교 과제로 Up and Down game을 만들어보려고 코드를 짜봤는데 모델심에서 시뮬레이션을 돌리면 에러가 떠서 이렇게 도움을 받고자..질문드립니다 동작만 가능하게 만들면 되어서 마음껏 수정하셔도 괜찮아요 (뭔가 제가 짠 게 비효율적인 것 같아서요..)아래는 제가 짠 코드들 이구요, 전체적인 동작은 다음과 같습니다. 1. State0에서 module LSFR을 불러와서 난수 rnd를 저장하고 State1로 넘어간다. 2. State1에서는 사용자에게 fpga보드의 스위치를 통해 4비트의 이진수 sw을 입력받고 bcd에 저장한다. 그러고나서 module bcd_seven을 불러와서 fpga보드의 숫자판에 seven을 출력하고 State2로 넘어간다. 3. State3는 rnd와 bcd 값을 비교하는 부분이다. 만약 rnd > bcd인 경우, led 에서 Red 불빛을 키고 다시 State1로 간다. 그렇지 않고 만약 rnd < bcd인 경우, led에서 Blue 불빛을 키고 State1로 간다. 그렇지 않고 rnd = bcd인 경우, led에서 Green 불빛을 키고 다시 State0으로 간다. ㄱ. 사용자로부터 입력받은 4bit 스위치 값을 fpga보드 위에 숫자판에 0~9까지의 숫자로 표시하는 bcd_seven 모듈`timescale 1ns/1nsmodule bcd_seven input [3:0] bcd; output [6:0] seven; reg [6:0] seven; always @(bcd) begin case (bcd) 4'b0000 : seven = 7'b0111111; 4'b0001 : seven = 7'b0000110; 4'b0010 : seven = 7'b1011011; 4'b0011 : seven = 7'b1001111; 4'b0100 : seven = 7'b1100110; 4'b0101 : seven = 7'b1101101; 4'b0110 : seven = 7'b1111101; 4'b0111 : seven = 7'b0000111; 4'b1000 : seven = 7'b1111111; 4'b1001 : seven = 7'b1101111; default : seven = 7'b0000000; endcase endendmodule ㄴ. 0~9까지의 숫자 중 하나를 랜덤으로 뽑아 rnd에 저장하는 LSFR 모듈`timescale 1ns/1nsmodule LFSR (input clk, input rst, output [3:0] rnd);reg [3:0] random, random_next, random_done;reg [2:0] count, count_next;wire feedback = random[3] ^ random[2];always @(posedge clk or posedge rst) beginif (rst) begin random <= 4'hF; count <= 0;endelse if (count == 3) begin count <= 0; // if (random < 10) // Limit the range to 0 to 9 random_done <= random % 10; endelse begin random <= random_next; count <= count_next; endendalways @(*) begin random_next = random; count_next = count; random_next = {random[2:0], feedback}; count_next = count + 1;endassign rnd = random_done;endmodule ㄷ. rnd와 bcd 값을 비교해서 led 불빛을 표시하는 Upanddown 모듈`timescale 1ns/1nsmodule Upanddown ( input clk, input rst, input [3:0] sw, output reg red_led, output reg blue_led, output reg green_led);reg [3:0] rnd;reg [3:0] bcd;reg [1:0] state, next_state;// Instantiate LSFR and bcd_seven modulesLSFR lsfr_inst ( .clk(clk), .rst(rst), .rnd(rnd));bcd_seven bcd_seven_inst ( .bcd(sw), .seven());always @(posedge clk or posedge rst) begin if (rst) begin state <= 2'b00; // Initial state: State0 end else begin state <= next_state; endendalways @(posedge clk) begin case (state) 2'b00: begin // State0: Generate rnd using LSFR lsfr_inst; // Call LSFR module rnd <= lsfr_inst.rnd; // Store the generated rnd next_state = 2'b01; // Move to State1 end 2'b01: begin // State1: Get user input from switch and display on 7-segment display bcd_seven_inst.bcd <= sw; bcd_seven_inst.seven(); // Call bcd_seven module bcd <= bcd_seven_inst.bcd; next_state = 2'b10; // Move to State2 end 2'b10: begin // State2: Compare rnd and user input, update LEDs, and go to the next state if (rnd > bcd) begin red_led = 1; blue_led = 0; green_led = 0; next_state = 2'b01; // Move to State1 end else if (rnd < bcd) begin red_led = 0; blue_led = 1; green_led = 0; next_state = 2'b01; // Move to State1 end else begin red_led = 0; blue_led = 0; green_led = 1; next_state = 2'b00; // Move to State0 end end default: begin next_state = 2'b00; // Default: Move to State0 end endcaseendendmoduleㄹ. rnd>bcd, rnd<bcd, rnd=bcd 등 전체적인 동작을 확인할 수 있는 테스트벤치`timescale 1ns/1nsmodule Upanddown_Tb;reg clk;reg rst;reg [3:0] sw;wire red_led, blue_led, green_led;// Instantiate Upanddown moduleUpanddown upanddown_inst ( .clk(clk), .rst(rst), .sw(sw), .red_led(red_led), .blue_led(blue_led), .green_led(green_led));// Clock generationinitial begin clk = 0; forever #5 clk = ~clk;end// Initial valuesinitial begin rst = 1; sw = 4'b0000; // Apply reset #10 rst = 0; // Scenario 1: rnd > bcd #20 sw = 4'b0010; // User input: 0010 #30 $display("Scenario 1: rnd > bcd, Expect Red LED: %0d, Blue LED: %0d, Green LED: %0d", red_led, blue_led, green_led); // Scenario 2: rnd < bcd #40 sw = 4'b1001; // User input: 1001 #50 $display("Scenario 2: rnd < bcd, Expect Red LED: %0d, Blue LED: %0d, Green LED: %0d", red_led, blue_led, green_led); // Scenario 3: rnd = bcd #60 sw = 4'b1101; // User input: 1101 #70 $display("Scenario 3: rnd = bcd, Expect Red LED: %0d, Blue LED: %0d, Green LED: %0d", red_led, blue_led, green_led); #100 $finish; // End simulation after some timeendendmodule
-
미해결Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
Memory Address 구현 질문
안녕하세요. 강의 잘 보고 있습니다.궁금한 점이 생겨서 질문 드립니다. 저는 ALINX사에서 만든 보드를 사용하고 있습니다. FPGA는 xc7a35t이고, ddr은 MT41K256M16HA-125입니다. 4Gb짜리 ddr3가 2개 달려있어서 총 8Gb의 메모리를 가지고 있습니다. 강의 내용을 토대로 제가 사용하는 보드의 ddr address를 분석해보았을 때 이렇게 계산 하는게 맞는지 궁금합니다. 보드에 장착된 메모리의 총량 은 8Gb. 메모리의 데이터 버스는 16 x 2 = 32 bits따라서 Address 당 data width는 32bits. 계산 상으로 Address는 28bits면 된다(2^28 x 32 = 8Gb)Address영역은 0x0000_0000부터 0xffff_ffff( x 32bits) 이다. 라고 계산했는데 이렇게 계산하는게 맞는지 궁금합니다!
-
미해결Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
ui_clk값을 낮출수 있을까요?
강의자료에는 ui_clk값이 81.2MHz로 나와있는데요, 제가 design한 블럭에 81.2MHz clk입력시, implement시 setup time부족하여 절반인 40.6MHz로 낮추고 싶습니다.제 design블럭과 memory controller간 AXI4 interface로 연결하였는데요, memory controller의 ui_clk출력을 40.6MHz로 낮춰서 AXI통신도 40.6MHZ로 낮춰 통신하고자 합니다.memory controller의 ui_clk출력을 40.6MHz로 낮출수 있을까요?
-
미해결Verilog를 이용한 FPGA 활용 기초
alwayw구문의 작동 순서에 관해 문의드립니다.
Verilog를 이용한 FPGA 활용-기초 강의에서첫번째 코드의 시뮬레이션의 결과가이렇게 나오는데 구간 2와 구간 3이 왜 같은 클락에서 발생하지 않고 2번 발생후에 3번이 발생하는지 모르겠습니다. 병렬적으로 코드 구현이 된다고 이해를 했는데 혹시 제가 놓친 코드가 있을까요
-
해결됨Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
DDR Controller 핀 맵핑
안녕하세요 강사님. 실습을 zybo z7-10보드로 하는 수강생입니다. 그럴 경우에 교재 25페이지에 있는 핀 맵핑을 어떻게 해야 하나요? 회로도를 보면서 일일이 맵핑을 하려고 하는데 Pin Number, IO Standard는 감이 오는데 Bank Number, Byte Number은 어떻게 설정해야하나요?
-
해결됨Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
HW Bitstream 다운로드 시 에러 문의
안녕하세요. 89페이지를 실행하던 도중 오류가 생겨 문의드립니다.해당 오류를 무시하거나 해결할 수 있는 방법이 있을까요? [Labtools 27-3291] Flash Programming Unsuccessful. Part selected s25fl128sxxxxxx0, but part mt25ql128 detected. 사진 첨부드립니다.
-
해결됨Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
Clock Period 설정방법
안녕하세요 Artix7 FPGA의 Clock period 설정 방법에 대해 문의드립니다. 16페이지에 Arty A7보드는 기본으로 100MHz를 사용한다고 나와있는데 Artix 7 Datasheet의 어느 부분을 확인해야 알 수 있는 걸까요?더불어 PLL의 M,N 값은 0~15,0~31로 범위가 한정되어 있다고 하셨는데 FPGA의 특성마다 M,N값의 범위가 있는 걸까요? 이 또한 데이터 시트에 나와있는 걸까요?Artix-7 FPGAs Data Sheet: DC and AC Switching Characteristics (DS181) 의 어느 부분을 확인하면 되는지 문의드립니다.
-
미해결Verilog를 이용한 FPGA 활용 기초
parts 선택 관련 문의드립니다 !
처음에 비바도 파일을 생성할 때 parts 선택 부분에서 xc7a35tcsg에 해당하는 parts를 찾을 수 없다고 나오면 이 문제는 어떻게 해결해야하나요?다른 parts나 boards로 이를 대체할 수 있나요?
-
미해결Verilog를 이용한 FPGA 활용 기초
FPGA MCU Porting
안녕하세요 현재 반도체 설계 업종에 종사하고 있습니다.Full custom 설계를 하다가 이번에 RTL 설계 부서로 이동할 것 같은데 DFT 관련 부서라고 합니다.본 강의가 도움이 많이 되어서 FPGA MCU Porting 을 다음 강의로 들어보려고 하는데 RTL 설계 Flow 를 익히는 관점에서 도움이 될까요?추후에 DDR Controller 까지 들어서 현업에서 도움 받으려고 합니다.그리고 새소식 게시판에 MCU Porting 수강하면 Flash 모듈을 무료로 주신다고 하셨는데 모듈 종류가 뭔지 궁금합니다좋은 강의 감사합니다.
-
해결됨Verilog를 이용한 FPGA 활용 기초
reg 선언 후
reg를 선언 후에 F/F에서 사용하지 않고 내부 IP Block으로 바로 연결되어도 괜찮을까요?
-
해결됨Verilog를 이용한 FPGA 활용 기초
행렬과 관련하여 문의드립니다.
기초가 너무 부족한 학생입니다.reg signed [15:0] data [0:31];16bit 데이터를 32개의 어레이로 선언하는 방식이 이것이 맞는지 궁금합니다.사실 RTL anlysis를 통해서 schematic이 제대로 생성되었는지 확인하였는데, 다음 synthesis 과정에서 constraint wizard로 적절히 파일을 생성해준 다음 synthesis를 진행하였습니다.그런데 error와 warning은 없는데 schematic이나 utilization 정보를 보면 터무니 없는 정보들이 나옵니다.혹시 어떤 부분을 확인하면 도움이 될까요? 저는 개인적으로 어레이 선언한 부분이 잘못된 것인가해서 앞서 질문을 드렸는데 synthesis에서 에러는 안뜨고 전혀 엉뚱한 결과를 내서 디버깅중입니다. ㅜㅜ