묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
error 문제
안녕하세요 ./build하면 계속 오류가 뜨는데 이유를 모르겠어요 ㅠ 33번째줄 end가 오류라는데 왜 오류인지 모르겠어요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
16강 질문
1) Area가 클수록 Cost가 비싸고 따라서 Area가 크면 용량이 작다고 설명하셨습니다.먼저 Area와 용량의 관계에서 "Area가 크다는 것은 각 메모리 Cell의 크기가 크다는 것이고 따라서 더 적은 수의 Cell을 넣을 수 있어 용량이 적음" 으로 이해했고, Area와 Cost의 관계는 Area가 클수록 공정에서 비용이 들어 Cost가 비싼것으로 이해했습니다 하지만 결론적으로 Area와 용량이 무조건적으로 반비례하는 것에 대한 이해가 잘 되지 않습니다. 2) 0이 저장된 상태에서 1을 WRITE→ 우측 인버터의 출력부분에 0이 저장되어 있을 때, 여기서 WL에 1을 주고 BL에 1을 주면 BL과 인버터가 short되면서 1과 0이 만나게 된다. 이때 BL의 신호 1은 우측 인버터 부분 신호 0이 있으므로 충전되지 않은(또는 매우 적게 충전된) Parastic Cap을 충전시키게 된다. 따라서 상태를 바꾸지 못 할수도 있는데, 이는 그저 BL의 신호 세기를 충분히 높혀주면 되는 부분이다. 라고 이해했는데 맞을까요??(pdf의 블로그에 들어가보니 접지로 BL의 신호가 흘러서 상태를 바꾸지 못할수도 있다고 되어있어서요 !!)
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
ASIC에서 SRAM에 관한 질문입니다.
안녕하세요, 정성이 느껴지는 강의를 제공해 주심에 감사드립니다. 컴퓨터 구조의 메모리 계층 구조와 Verilog로 SRAM 모델링하기 강의에서 궁금증이 생겨 질문 드립니다. ASIC 칩을 찍어내는 상황이라는 가정을 하고, SRAM의 DEPTH를 2의 지수가 아닌 수(예를 들면 1021)로 지정하면, 실제 칩에는 DEPTH가 1021인 SRAM이 올라가나요? 아니면 1024짜리 SRAM이 올라가나요? 파운드리마다 다른가요? 실제 ASIC 칩에 DEPTH가 1021인 SRAM이 올라간다고 가정한다면, 주소의 bitwidth는 10-bit이므로 1022번이나 1023번 주소처럼 잘못된 주소에 접근할 가능성이 있습니다. 그렇기 때문에 이를 막는 로직이 추가로 필요할 것이라고 생각이 드는데, 이때 발생하는 overhead를 고려하는 것과 그냥 DEPTH가 1024인 SRAM을 올려버리는 것을 PPA 관점으로 비교할 수 있는 방법이 있을까요? 3.parameter로 선언된 변수를 비교 대상으로 삼아도 ASIC에서 아무 문제 없나요? 가령, if (addr > DEPTH) 처럼요!
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
강의자료
수업하시는 ppt 자료는 혹시 어디서 확인 가능할까요 ?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
cache 코드 관련 추가 질문드립니다.
한 회차에서 많은 너무 많은 질문을 드리는 것 같네요... 한번에 질문 드려야 하는데 볼때마다 새롭게 궁금하는 점이 생겨 또 질문드립니다...always @(posedge clk, negedge rstn)if (!rstn) cc_re_d <= 0;else cc_re_d <= cc_re; 위 코드의 경우 Cache에 read enable 하는 변수에 해당하는 것 같습니다. cc_re와 cc_re_d를 별도로 변수를 초기화 하고, clk 신호에 맞게 동기화를 하는 이유를 잘모르겠습니다. (제가 생각한 내용은 cc_re의 경우 i_cpu_req 신호에 비동기로 값을 변경하고, 해당 값을 clk 동기화 신호에 맞게 cc_re_d에 넣게되면, clk 주기 사이에 cc_re의 값이 변경되어도 cc_re_d의 값은 clk가 주기가 오기전까지 값을 유지하게 되는 상황인데 굳이 cc_re의 경우에만(추가로는 mem_we_d도 마찬가지) 이런식으로 구성한 이유를 잘모르겠습니다.)+ 추가로 찾아보니 메타스테이블 상태를 방지하기 위함 -레벨 트리거(cc_re가 그대로 전달될 경우) 신호가 엣지 트리거(다른 always @문에 사용되는 구문들) 상태와 겹치는 상태에서 불안정한 신호를 전달하기 때문이라는데, (레벨 트리거 신호를 엣지 트리거 상태로 변경하기 위함인가요?) 이게 맞는 내용일까요? => 그렇다면 다른 레벨 트리거 변수들은 위와 같이 동기화 신호로 안바꿔주는 이유가 궁금합니다...)
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
dual port ram 설계 코드 질문
module dpsram #( parameter DEPTH=8, parameter WIDTH=32, parameter DEPTH_LOG=$clog2(DEPTH) )( input clk, input [WIDTH-1:0] din_a, input [WIDTH-1:0] din_b, input [DEPTH_LOG-1:0] addr_a, input cs_a, input we_a, input [DEPTH_LOG-1:0] addr_b, input cs_b, input we_b, output reg [WIDTH-1:0] dout_a, output reg [WIDTH-1:0] dout_b ); reg [WIDTH-1:0] mem[DEPTH-1:0]; initial begin for(int i=0;i<DEPTH;i++) mem[i]=0; end always@(posedge clk) begin //write if(we_a && cs_a) mem[addr_a] <= din_a; if(we_b && cs_b) mem[addr_b] <= din_b; end always@(posedge clk) begin //read if(~we_a && cs_a) dout_a <= mem[addr_a]; if(~we_b && cs_b) dout_b <= mem[addr_b]; end endmodule위와같이 dpsram코드를 짰습니다. 예제 코드와는 다르게 저는 write와 read를 각각 나눠서 always block을 구성했는데 이렇게 짜면 다르게 동작하나요? RTL 뷰어로 보니 아래와 같이 복잡하게 나와서 질문드립니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
cache 코드 관련 질문드립니다!
always @(posedge i_clk, negedge i_rstn) begin if(!i_rstn) r_wb_mem <= 0; else if(w_cpu_we) r_wb_mem[w_cc_wa] <= 1; else if(w_mem_re) r_wb_mem[w_cc_wa] <= 0; else if(w_mem_we) r_wb_mem[w_cc_wa] <= i_cpu_write; end위 코드의 경우 별도의 설명이 없었던 것 같습니다.코드를 분석하는 중 궁금한 점이 몇가지 생겨서 질문 드립니다.cpu_we이 1인 경우 CPU에서 (읽기를 통해 값을 비교하여 바꾸는 작업이 아닌) 쓰기 작업에 대한 요청을 보냈기 때문에 Main Memory에 값을 쓰기 위한 wb이 반드시 1로 되는게 맞는건지 궁금합니다.mem_re가 1인 경우 wb이 0이 되는 것이 헷갈립니다. 제가 이해한 Write Back은 쓰기 Main Memory에 데이터를 저장하는 것이기 때문에 mem_re 즉, 읽기 요청이 왔을 때 쓰는 행위가 같이 일어나면 안되는 것이라서 그런것인지 궁금합니다. (추가로 다른 이유가 있는지 궁금합니다.)mem_we가 1인 경우 memory에 Data를 써야하기 때문에 i_cpu_wirte에 값을 전달 받는 것이 아니라 1이 되어야 하는게 아닌지 궁금합니다.(i_cpu_write가 0인데 mem_we가 1인 상태가 궁금합니다. => 그냥 메모리에 쓸 준비가 되어 있는 상태에서 i_cpu_write 요청이 들어오면 그때 wb을 1로 만들겠다는 의미가 맞는지 궁금합니다.)아직 해석이 완벽하지 않아 내용 정리 및 전달이 미흡한점 죄송합니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
timing diagram에서 변한 값의 반영
현재 HDL 16강을 공부 중인데 Timing diagram을 보면 reset의 하강 이후 왜 c_state값이 바로 반영이 되지 않고 한 주기 이후에 값이 반영이 되나요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
SRAM 코드 Delay 관련
SRAM 코드의 경우 posedge에서 memory에 값을 넣는 동시에 ad, din 값을 하나씩 커지게 동작 시키면 기능 합성에는 문제가 되지 않지만, Delay가 적용되면 값이 흐트러 질 수 있는거 아닌가요?(예를 들면 negedge에 값을 넣어준다던가 해야하는게 아닌가요?)
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
r_min_cnt사용 이유
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.)==================[1. 질문 챕터] : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 2. 시,분,초 만들기 - Part1 7분 57초쯤[2. 질문 내용] : r_min_cnt로 초를 저장한 다음 end else if 문 안에서 그 초가 59초가 될 때 0으로 초기화하고 o_min값을 1증가시킨다고 이해했는데 end else if (o_sec==60-1)처럼 이미 사용하고있는 변수를 사용하면 되는거 아닌가요?[3. 시도했던 내용, 그렇게 생각하는 이유] : o_sec는 wire타입이여서 출력으로 확인만되서 reg 탑입의 저장되는 변수하나를 만든건가 싶기는 한데 그렇다 하더라도 그냥 처음부터 o_sec를 reg타입으로 만들어주면 되는거 아니였나 싶습니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
test bench 작성 후 RTL 시뮬레이션
강의에서 소개되는 FA_4bit를 RTL 시뮬레이션 해보려고 하였으나 위와 같은 오류창이 계속 뜹니다. tb명은 FA4bit으로 하였습니다. 해결할 방법이 있을까요?
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
bram depth 관련
안녕하세요,bram 총 용량이 600KB 이상일 때, 36KB 단위로 나눠져 있는 걸로 알고 있습니다.그러면 (* ram_style = "block" *) reg [16-1:0] ram [0:30000-1];위와 같이 width 16bit, depth 30000으로 하면 약 60KB 로 36KB를 넘어섭니다.그러면 bram을 36KB 단위로 module을 분리해 줘야 하는지, 아니면 합성툴이 자동으로 처리해주는지 알 수 있을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
frequency 혼용
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ==================[1. 질문 챕터] : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 1. 1초 만들기 3분~3분 25초경[2. 질문 내용] : input clock freq가 100Mhz인데 i_freq값을 10M으로 준다는거에서 둘다 freq인데 각각이 뭘 의미한다는건지 너무 헷갈립니다.[3. 시도했던 내용, 그렇게 생각하는 이유] : i_freq가 현재 입력되는 clock의 freq값이라고 설명하셨는데 그럼 현재 입력되는 clock의 freq가 input clock freq와 달라질 수 가 있나요?개인적으로 input clock freq는 실제 Clock 주파수 즉 Clock이 1초에 몇번 진동하는지를 말하는 것 같고 i_freq가 1초에 tick되는 회수를 조정하기위해서 제가 입력해주는 값이라고 이해했는데 그렇다면 현재 입력되는 clock의 freq값이라고 설명하신 부분이랑 설명이 좀 달라지는 것 같습니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
DRAM Flow 관련 질문
Precharge 상태가 왜 VDD와 동일한지 궁금합니다. 제 생각에는 0.5Vcc를 유지해야 하는게 아닌가 싶어서 질문을 드립니다.20:04초 그림을 보게되면 Precharge 상태에서 BL이 VDD와 동일하게 차 있는 것을 볼 수 있는데 이렇게 되면 Charge Sharing이 일어나게 되면 캐패시터에 Write되지 않은 상태(0.5Vcc)에서 무조건 전압이 높아지고, 센스 앰플에 의해 1의 신호가 전달되면 캐패시터의 값이 Write가 일어나지 않았는데도 1의 값을 저장하게 되는게 아닌가 싶어 질문 남깁니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
100Mhz가 100만? 1억?
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.)[1. 질문 챕터] : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 1. 1초 만들기의 1분경[2. 질문 내용] : 에 100Mhz가 100만이라고 하시고 그 다음 문제들도 다 기술하시는데 1M이 10^6이면 1억 Cycle이 발생해야하는거 아닌가요?[3. 시도했던 내용, 그렇게 생각하는 이유] : 음... 그냥 곱해도 100X 1,000,000 이여서... 다른 분들도 분명 생각했을 건데 질문을 아무도 안했기에 너무 당연한거라 질문을 안한것인지 제가 뭔가 잘못이해한것인지 혼란스럽습니다.Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 1. 1초 만들기
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
해당 교재 제목과 저자를 알려주실 수 있나요?
https://aifpga.tistory.com/entry/Verilog-HDL-QA-021-reset%EC%9D%84-negative%EB%A1%9C-%EC%A3%BC%EC%8B%9C%EB%8A%94-%EC%9D%B4%EC%9C%A0%EA%B0%80-%EB%AD%90%EC%A3%A0-positive%EC%97%90%EB%8A%94%EC%9D%B4%EB%AF%B8-clk%EC%9D%B4-%ED%95%A0%EB%8B%B9%EB%90%98%EC%9E%88%EC%96%B4%EC%84%9C%EA%B7%B8%EB%9F%B0%EA%B0%80%EC%9A%94 위에 리셋 개념에 대해 잘 설명해 주신 것이 도움이 되었습니다. 맨 마지막 그림에서 "9. write code for asynchronous/synchronous flip flops and discuss the pros and cons of each"이 내용이 나오는 책을 찍어서 올려주셨는데, 이 책의 제목과 저자를 알려주실 수 있나요?
-
미해결Verilog FPGA Program 1 (Arty A7-35T)
open hardware manager에서 보드 인식 못하는 문제
led_counter 강의 중 비트스트림 생성까지 완료하고 보드와 usb 5핀 연결하여 open hardware manager버튼까지 눌렀지만 localhose(0)이라고 확인됩니다. 보드를 인식을 못하는 문제일까요? 아니면 usb연결이 잘못된건지,, 통신 관련해서 설정이 필요한 부분이 더 있는 것인지 알고 싶습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
파일 재설치 오류
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================안녕하세요 맛비님, 절차대로하다가, 19분 20초에 마지막으로 설치하는 코드 ./Xilinx_Unified_2021.2_1021_0703_Lin64.bin -- -a XilinxEULA,3rdPartyEULA -b Install -c /root/.Xilinx/install_config.txt (맛비님이 말씀하신대로 수정하고 진행했습니다.)를 실행하다가 노트북을 중간에 끄다가 오류가 발생했습니다.앞에서도 제가 잘못한게 있을까 싶어서 처음부터 재설치를 하다가 이번에도 위와 같은 부분에서 막히게 돼서 질문을 드리게 됐습니다.코드 오류의 내용은 제가 이미 비바도를 설치했기 때문에 오류가 발생한 것으로 보이는데, 혹시나 제대로 깔려서 설치가 안 되는 것인가 싶어서 이후의 내용으로 비바도를 열어보려했지만 비바도 파일을 찾지 못하는 것 같았습니다.해결 방법이 있을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 오류
수정 하는 부분에서 초록색으로 뜨고 수정이 안됩니다.아무리 해도 해당 내용들이 수정이 안되요.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
섹션4 cache 메모리 강의 관련 질문
섹션4 cache memory강의 24:05에서 Line 0,1이 DRAMP에서 같은 memory를 받아온다면 Line의 개수가 2배로 늘거나 mapping 비율이 2배가 늘어나는 건가요?