inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

컴퓨터가 이해하는 두 가지 정보 : 데이터 쪽 질문

미해결

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

정적인 정보를 데이터라 부른다고 써져있는데 동적인 정보는 데이터가 아닌건가요?

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
아아 댓글 1 좋아요 0 조회수 116

SRAM module RTL viewer 이상

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

rtl viewer를 열면 mux모양 로직 (dout ~0 부터 dout ~ 31이라고 쓰여있음) 이게 책처럼 겹쳐야 하는데 죄다 병렬 회로로 늘어져서 엄청 공간 차지를 많이 합니다. 코드 문제는 아닌 것 같은데 어떻게 해야하나요? rtl viewer에서 netlist navigator 수정이 안되나요? netlist navigator를 보면 always0과 dout~0부터 dout~31까지가 동시에 logic이라는 폴더에 들어 있습니다. 그래서 벡터를 책처럼 못 묶는 것 같습니다.

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
임효진 댓글 2 좋아요 0 조회수 119

slave와 master 시뮬레이션

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

안녕하십니까 삼코치님 AXI프로토콜을 시뮬레이션 하는 과정에서 시뮬레이션할 때 마스터,마스터_tb,슬레이브,슬레이브_tb를 모두 결합시켜셔 시뮬레이션해야하는 건가요?

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • amba
윤매 댓글 2 좋아요 0 조회수 90

2차원 배열 포인터 질문

해결됨

독하게 시작하는 C 프로그래밍

int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; int sum = ( a+0) + ( a+1) + ( a+2); 여기서 내가 모르겠는 부분은 a는 배열이기 때문에 a[0]이 a의 주소로 참조 되고 주소를 100이라고 가정한다면 a는 100의 값이 저장된다. 이때 *a는 왜 1이 아니고 *a는 100번지라는 주소를 가지는 건가요?? 1차원 배열 포인터는 주소의 위치 값을 말한다고 배웠는데 배열에서는 적용이 다른 거 같아서 헷갈리는데 2차원 배열의 특징으로 외워야 하는 건가요? GPT 설명 🔎 핵심: a , *a , a[0] , &a[0][0] 모두 주소는 같아도 타입이 다르다 표현의미타입주소값 예시 a 2차원 배열의 첫 번째 행의 주소 int (*)[3] 100 *a 첫 번째 행 a[0]int[3] 100 a[0] 첫 번째 행 int[3] 100 &a[0][0] 첫 번째 요소의 주소 (즉, 1의 주소) int* 100 **aa[0][0] == 1 int (값) 1 즉 *a == a[0] == 주소 , **a == a[0][0] == 값 저는 a = 100 인데 *a도 100인게 이해가 안되요

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
조범상 댓글 3 좋아요 0 조회수 129

4bit 2입력 mux 만들기

해결됨

만들면서 쉽게 배우는 컴퓨터 구조

2입력 1비트 MUX를 기본 논리 게이트만으로 구현한 예시 외에도, 입력 비트가 1비트 이상일 때 역시 모든 MUX를 기본 게이트로만 구성해 보았습니다. 기본 게이트에서 MUX로 전환되는 과정을 정확히 이해하기 어려워 이렇게 구현했는데, 설계가 올바르게 되었는지 검토 부탁드립니다.

  • 컴퓨터-구조
  • computer-science
southgyuios19 댓글 2 좋아요 1 조회수 187

캐시 메모리

미해결

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

안녕하세요 CPU와 RAM 사이에 캐시 메모리가 있다고 하셨는데, 그럼 CPU는 먼저 캐시 메모리에 제어 신호를 보내는 건가요? 맞다면 시스템 버스를 통해 제어신호를 보내는 건지도 궁금합니다!

  • 컴퓨터-구조
onamhee5645 댓글 1 좋아요 0 조회수 109

정보처리기능사 실기 강의

미해결

정보처리기능사 필기

선생님~ 정보처리기능사 필기 강의 잘 듣고 있는데요, 이 시험 실기 강의는 인프런에는 없나요? 선생님 실기강의는 어디서 들을 수 있을까요?

  • sql
  • 네트워크
  • 컴퓨터-구조
  • 운영체제
  • database
myskeet 댓글 2 좋아요 0 조회수 191

시작 프로젝트 설정

해결됨

독하게 시작하는 C 프로그래밍

솔루션1개에 여러 개의 프로젝트가 있을 때 컴파일하고 싶은 프로젝트 우클릭후 시작 프로젝트로 설정이 안나와요.. 어떻게 해야하나요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
양근영 댓글 2 좋아요 0 조회수 185

문자열 입/출력 맥북

해결됨

독하게 시작하는 C 프로그래밍

Mac OS 기반 맥북으로 수강하고 있는 학생입니다. VS code가 강의하실 때의 윈도우 기반 vs code랑 사뭇 다르네요.. 처음에 VS code 설치 후 기본 설정과 단축키도 다르고 _getch()도 맥에서는 오류가 뜨고 여러모로 윈도우가 아니여서인지 제한 사항이 많네요. 디버깅 예시 보여주시면서 메모리랑 같이 설명하실 때 저는 도저히 어디서 메모리와 주소를 찾아야 할지 모르겠더라구요.. 혹시 Mac OS 기반도 어떻게 설정하시는지 알 수 있을까요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
도헌 댓글 2 좋아요 0 조회수 131

어셈블리어 작성에 대한 질문

미해결

만들면서 쉽게 배우는 컴퓨터 구조

어셈블리어를 작성할 때 저희가 만든 RAM이 16Byte이니까 16줄을 넘어가게 작성하면 안되나요? 그리고 데이터를 저장하는 장소는 13~16줄 사이에 작성해야 하나요? 데이터를 저장할 수 있는 줄이 정해져 있는건지 궁금합니다.

  • 컴퓨터-구조
  • computer-science
Lee jae seung 댓글 2 좋아요 0 조회수 96

어셈블리 언어 실습 중 발생한 오류에 관해

해결됨

만들면서 쉽게 배우는 컴퓨터 구조

어셈블리 언어인 asm를 xml로 변환하는 과정에서 폴더 우클릭 시 "터미널에서 열기" 메뉴가 없습니다. 대안으로 cd명령으로 해당 폴더로 이동한 이후 똑같이 명령어를 작성해보니 다음과 같은 오류가 발생합니다. 5X4.asm: XML formatting error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. 이 경우 어떻게 해야 하나요?

  • 컴퓨터-구조
  • computer-science
Lee jae seung 댓글 1 좋아요 0 조회수 97

SR Latch 진리표 상태

해결됨

만들면서 쉽게 배우는 컴퓨터 구조

S R Latch의 진리표에서 S, R 모두 1인 경우 사용 불가인 이유가 잘 이해가 안됩니다. 사용불가라는게 동작이 정의되지 않아서 인가요?

  • 컴퓨터-구조
  • computer-science
유일용 댓글 2 좋아요 0 조회수 255

9강 timing anaylzer 부분에 질문 있습니다.

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

안녕하세요 삼코치님 9강 timing 분석과 data-path Delay확인하기 강의에서 강의 화면처럼 slack과 delay정보가 나오지 않습니다 사전적으로 강의 그대로 full adder 코드와 simulation 코드 sdc파일을 만들었으며(강의 자료의 코드를 다운로드하였습니다) start버튼도 눌렀습니다. 무엇을 놓쳤는지 잘 모르겠습니다

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
정은규 댓글 2 좋아요 0 조회수 89

자리올림수와 자릿수

미해결

만들면서 쉽게 배우는 컴퓨터 구조

반가산기를 사용하며, 2개 비트로 자리올림수 1개(Carry)만들어서 구현하는 것 까지는 이해 했으나, 이게 왜 반쪽짜리 가산기인지 이해가 잘 안갑니다. 강사님께선 여러 비트를 더할 때, 자릿수 오림이 없는 최하위 비트만 사용 가능 하다고 하셨는데, 이 문맥과 흐름에 대해서 명확하게 이해하기가 어렵습니다. ( 5분 29초 경에 나오는 "LSB만 자릿수 올림이 없음!" 예제 이미지를 봐도 이해가 퐉! 안되네요 ㅜㅜ ) 도와주시면 너무 감사하겠씁니다..!

  • 컴퓨터-구조
  • computer-science
정예은 댓글 2 좋아요 1 조회수 140

불 대수의 성질과 법칙(분배법칙 확인 요청)

해결됨

만들면서 쉽게 배우는 컴퓨터 구조

안녕하세요. CS스터디4기 유일용이라고 합니다. 불 대수의 성질과 법칙에서 AND 분배법칙이 A(B+C) = (AB)+(BC)로 나오는데 A(B+C) = (AB) + (AC)가 맞는 것 같은데 확인 부탁드립니다.

  • 컴퓨터-구조
  • computer-science
유일용 댓글 2 좋아요 1 조회수 149

캐시메모리의 저장 위치

미해결

만들면서 쉽게 배우는 컴퓨터 구조

안녕하세요 강사님! 워밍업클럽4기 수강생 정예은 입니다. 캐시메모리는 CPU가 자주 사용하는 데이터를 RAM에서 미리 가져와서 저장하는 공간이라고 하셨는데, 그럼 이 캐시메모리는 CPU내부의 레지스터 에 저장되는 걸까요 ??? 캐시메모리는 정확히 어디에 위치하는지 궁금해졌습니다 !

  • 컴퓨터-구조
  • computer-science
정예은 댓글 2 좋아요 0 조회수 231

컴퓨터 부팅에 필요한 BIOS란?

미해결

만들면서 쉽게 배우는 컴퓨터 구조

메인 메모리 중 하나인, ROM에 대해 설명해주셨는데요, ROM은 비휘발성 메모리로 컴퓨터부팅에 필요한 BIOS 가 저장되어 있는 읽기전용 메모리라고 하셨습니다. 이때, BIOS 는 어떤걸까요? BIOS에 대해 간략하게 알려주실 수 있나요?!

  • 컴퓨터-구조
  • computer-science
정예은 댓글 1 좋아요 1 조회수 111

getchar()함수의 반환형에 대해 질문드립니다.

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요. 공부할 때 chat gpt를 자주 활용하고 있습니다. chat gpt에 따르면 getchar()함수를 반환하려면 char a; a = getchar(); 가 아니라 int a; a = getchar(); int형으로 반환을 받아야한다고 하더라구요. EOF를 구분하기 위해서라는데... 그런데 예제들을 보면 char형으로 받는 예제들도 많아서 질문드립니다. 감사합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
kdy4071 댓글 2 좋아요 0 조회수 138

I2C SLAVE

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

안녕하세요 삼코치님! I2C SLAVE 코드에서 질문이 있습니다. 1. 데이터를 송수신 하는 아래 코드에는 시스템 클럭에 동기화된 SCL와 SDA를 사용했는데, Start와 Stop 조건 감지에는 SDA와 SCL 신호를 그대로 사용한 이유를 모르겠습니다. 또한 동기화하는 이유에 대해서도 명확히 모르겠습니다. 2.데이터를 송수신하는 코드에서는 I2C 수신하는 부분은 Posedge를 사용하고, 마스터로 송신하는 부분은 Negedge를 사용했는데, 따로 이유가 있는지 궁금합니다. 3.always 블럭 내부에서 blocking assignment를 사용했는데, 시스템 클럭과 동기화된 SCL을 클럭으로 사용한다면 Non-blocking으로 사용해야 하는 것 아닌가요? 한 번에 많이 여쭤봐서 죄송합니다. 강의 잘 듣고 있습니다. 감사합니다! --------------------코드------------------------ module I2C_SLAVE(CLCK, SCL, SDA); //I2C input CLCK; input SCL; inout SDA; //bidirectional port parameter slaveaddress = 7'b1110010; //Sample registers to send to requesting device reg[2:0] valuecnt = 3'b011; //Count of bytes to be sent, send read value twice //Synch SCL edge to the CPLD clock reg [2:0] SCLSynch = 3'b000; always @(posedge CLCK) SCLSynch <= {SCLSynch[1:0], SCL}; wire SCL_posedge = (SCLSynch[2:1] == 2'b01); wire SCL_negedge = (SCLSynch[2:1] == 2'b10); //Synch SDA to the CPLD clock reg [2:0] SDASynch = 3'b000; always @(posedge CLCK) SDASynch <= {SDASynch[1:0], SDA}; wire SDA_synched = SDASynch[0] & SDASynch[1] & SDASynch[2]; //Detect start and stop reg start = 1'b0; always @(negedge SDA) start = SCL; // reg stop = 1'b0; always @(posedge SDA) stop = SCL; // //Set cycle state reg incycle = 1'b0; always @(posedge start or posedge stop) if (start) begin if (incycle == 1'b0) incycle = 1'b1; end else if (stop) begin if (incycle == 1'b1) incycle = 1'b0; end //Address and incomming data handling reg[7:0] bitcount = 0; reg[6:0] address = 7'b0000000; reg[7:0] datain = 8'b00000000; reg rw = 1'b0; reg addressmatch = 1'b0; always @(posedge SCL_posedge or negedge incycle) if (~incycle) begin //Reset the bit counter at the end of a sequence bitcount = 0; end else begin // bitcount = bitcount + 1; //Get the address if (bitcount < 8) address[7 - bitcount] = SDA_synched; if (bitcount == 8) begin rw = SDA_synched; addressmatch = (slaveaddress == address) ? 1'b1 : 1'b0; end if ((bitcount > 9) & (~rw)) datain[17 - bitcount] = SDA_synched; end //ACK's and out going data reg sdadata = 1'bz; reg [2:0] currvalue = 0; always @(posedge SCL_negedge) //ACK's if (((bitcount == 8) | ((bitcount == 17) & ~rw)) & (addressmatch)) begin sdadata = 1'b0; currvalue = 0; end //Data else if ((bitcount >= 9) & (rw) & (addressmatch) & (currvalue < valuecnt)) begin //Send Data if (((bitcount - 9) - (currvalue * 9)) == 8) begin //Release SDA so master can ACK/NAK sdadata = 1'bz; currvalue = currvalue + 1; end else sdadata = datain[7 - ((bitcount - 9) - (currvalue * 9))]; //Modify this to send actual data, currently echoing incomming data valuecnt times end //Nothing (cause nothing tastes like fresca) else sdadata = 1'bz; assign SDA = sdadata; endmodule

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
이정규 댓글 1 좋아요 0 조회수 184

과제3 시뮬레이션 관련 질문

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

안녕하세요 삼코치님! 과제 3 하다가 계속 시뮬레이션 부분에서 tpsram 과 dpsram의 read data부분에서 오류가 생겨서 질문 드립니다. 두 소자 모두 Netlist viewer는 정상적으로 나오는 것을 확인하였고, 삼코치님이 올려주신 tb_tpsram.sv 파일을 이용하여 시뮬레이션을 진행하였는데 계속 문제가 생겨서 어디서 잘못된건지 감이 잡히지 않아 질문드립니다! module tpsram #( parameter DEPTH= 8, parameter WIDTH =32, parameter DEPTH_LOG = $clog2(DEPTH) ) ( input clk, input [WIDTH-1:0] wd, input [DEPTH_LOG -1:0] ra, input [DEPTH_LOG -1:0] wa, input we, input re, output reg [WIDTH-1:0] rd ); reg [WIDTH-1:0] mem[DEPTH-1:0]; initial begin for (int i=0;i<DEPTH;i++) mem[i] = 0; end always @(posedge clk) if (we) mem[wa] <= wd; always @(posedge clk) if (re) rd <= mem[ra]; endmodule module dpsram #( parameter DEPTH = 8, parameter WIDTH = 32, parameter DEPTH_LOG =$clog2(DEPTH) )( input clk, input we_a, input we_b, input [WIDTH-1:0] wd_a, input [WIDTH-1:0] wd_b, input cs_a, input cs_b, input [DEPTH_LOG-1:0] ad_a, input [DEPTH_LOG-1:0] ad_b, output reg [WIDTH-1:0] rd_a, output reg [WIDTH-1:0] rd_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) if(cs_a & we_a) mem[ad_a] <= wd_a; else if (cs_a) rd_a <= mem[ad_a]; always @(posedge clk) if(cs_b & we_b) mem[ad_b] <= wd_b; else if (cs_b) rd_b <= mem[ad_b]; endmodule 혹시 어디서 제가 실수를 한 걸 까요??

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
ghdrnek111 댓글 2 좋아요 0 조회수 125

인기 태그

인프런 TOP Writers

주간 인기글