묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
TPSRAM,DPSRAM TB코드 문법 질문
begin: tpsram_write @(posedge clk); for (int i=0;i<DEPTH;i++) begin we <= 1; wa <= i; wd <= 'h10+i; @(posedge clk);//필요한 이유 end we <= 0; @(posedge clk); end@(posedge clk); for문 마지막과 begin문 마지막에 필요한 이유가 뭔가요?주석 처리 후 시뮬레이션을 돌려보니 for문에 맞게 wa값과 wd값이 업데이트가 되지 않았습니다. 혹시 system verilog에서 for문과 begin문을 작성하면 @(posedge clk)을 해주는 것이 규칙인가요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
CPU모듈 Timing Analyze
안녕하세요. 강의 잘 듣고 있습니다.다름이 아니라 제공해 주신 CPU모듈의 타이밍 분석을 해보고 싶은데 알려주신 방법으로 타이밍 분석을 하면No paths to report 라고 뜨고 데이터가 나오지 않습니다. 어떻게 해결할 수 있을지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
공용체에 int, char 형 선언 후 값 읽기
문득 궁금한건데 아스키코드가 ’A’ 는 65잖아요예를들어union Data{ int intValue; char charValue;}; 이고 main함수에 charValue 값만 ‘A’ 로 대입 해주고 printf를 통해 intValue 값을 출력하면 65가 나오더라구요 이게 왜 이러는건가요? 메모리내에 값이 [41] [xx] [xx] [xx] 같이 0x41 값을 제외하고는 모두 쓰레기값일텐데 왜 65를 잘 출력하는거죠? 좀 헷갈립니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
sdc파일 확인을 위한 timing delay코딩 과정에 관해 질문 드립니다.
create_clock -name root_clk -period 20 [get_ports {clk}]derive_pll_clocksderive_clock_uncertainty 챕터3의 마지막 tool시연 영상에서 해당 부분을 입력하고 run synthesis하는 과정에서 막혔습니다.저는 이미 비바도가 설치되어 있기에 해당 프로그램을 바탕으로 실습 진행중이었습니다.다만 비바도의 경우 xdc파일 형태로 런이 진행되고, derive_pll_clocksderive_clock_uncertainty위의 두 문장은 적용되지 않는 다는 것을 알게 되었습니다.이럴 경우 어떤 코드를 작성해야 해당 기능을 대체할 수 있을 까요? 양질의 강의 감사 드립니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
페이지
보조기억장치 강의에서 셀이 모여서 페이지라고 하셨고, 페이지가 모여서 블록이라고 하셨는데,혹시 그 전 강의에서 프로그램을 페이지단위로 나누는것을 페이징 이라고 했는데 그때의 페이지가 셀이 모인 페이지인가요 ?그게 맞다면 보조기억장치에서는 블록단위로 저장한다고 햇는데, 페이지 스왑인 할때는 페이지가 모인 블록단위( 페이지 세트 )로 스와핑되는건가요 ? 여담으로이 강의가 너무좋아서 전공지식을 강사님꺼로 다 학습해보려고 해요.인프런에 혼공넷 이 올라왔더라고요. 유튜브에만 있었던거같은데.자료구조,알고리즘 공부하려했다가 네트워크부터 공부하겠습니다.자료구조,알고리즘 강의도 집필하시고 인강이 나왔으면 좋겠습니다 ..!!!!
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
책에 있는 내용이 다 들어가 있나요?
책에 있는 내용이 다 들어가 있나요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
과제 질문[Wrapper를 활용하여 FPGA vs. ASIC 각각의 모델 설계하기]
안녕하세요 첫 과제 진행에 있어 질문이 생겨 남깁니다. 제가 궁금한 점은 '왜 같은 SRAM 모델을 똑같이 인스턴스 시켜주냐' 입니다. 제가 이해한 바는 `define 한 줄로 시뮬레이션, FPGA, ASIC을 선택할 수 있게 만드는 것이 이번 과제라고 생각합니다. 근데 동일한 모듈은 그저 인스턴스 해준다는게 의미가 없다고 생각들어 질문드립니다. 상황에 맞게 다른 모듈을 정의해주어야하는게 아닌가요? 예를 들어 시뮬레이션에서는 시뮬레이션 전용 SRAM 모듈을 인스턴스 해줘야하고 FPGA에서는 FPGA 전용 모듈을 인스턴스 해줘야한다고 생각합니다.제 생각이 틀린 것일까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
페이지의 수
프로그램이 8kb이라고 가정페이지 크기를 2kb로 설정했다고 가정근데 변수를 100개 초기화,선언 했다고 가정근데 그 변수 100개의 주솟값이 변위 3 을 가진다고 가정 그럼 프레임에서 3만큼 떨어지게끔 설계된거지요.실제로 4페이지로 나뉘는게 아니라 100개 이상의 페이지로 나뉠수도있을거같아요
-
해결됨독하게 시작하는 C 프로그래밍
메모리 동적 할당 및 관리 질문
강의를 보다가 동적할당한 영역 이상으로 값을 넣고 동작시 Free 부분에서 디버그 에러가 발생하는것을 보여주셨는데, Free가 정상적으로 동작하지 않고 끝나는것처럼 보입니다.그렇다면 메모리에 할당후 값을 넣은 부분은 계속 메모리에 남아있게 되는건가요? 다른 프로그램에서 메모리를 덮어쓰거나 해당영역을 초기화 하지 않는이상 남아있을 것으로 판단되네요
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
cache 테스트벤치 코드 관련하여 질문 드립니다.
제 화면에는 삼코치님의 화면대로 run all이 뜨지 않는데 해결할 수 있는 방법이 있을까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
모니터
signal()을 호출한 프로세스의 실행을 일시 중단하고 자신이 실행된 뒤 다시 signal()을 호출한 프로세스의 수행을 재개 방식은 선점형 방식이랑 유사한것같고wait()를 호출햇떤 프로세스는 signal()을 호출한 프로세스가 모니터를 떠난뒤에 수행을 재개 하는 방식은 비선점형이랑 유사한것같네요. 2. 상호배재를 위한 큐와 우선순위를 위한 조건변수 큐는 순서로 봣을떄 연속배치되는 형식의 그림이 더 자연스러울거같은데 우선순위를 위한 조건변수 큐 는 모니터 위에 있도록 그림이 그려진 이유가 잇을가요 ?3. pcb의를 대기큐, 준비큐에 삽입하는것이 전에 봣던 강의중 명령어 사이클의 연장선이라고 생각해도될까요 ?가령 pcb안에 잇는 프로세스 상태의 값을 변경하는것이라고 봐도되는걸까요
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
스레드 컨텍스트 스위칭
스레드 컨텍스트 스위칭이란cpu의 레지스터에 있는 정보를 해당 스레드의 tcb에 저장하고 다른 스레드의 tcb의 정보를 가져오는거라고 생각합니다.그럼 thread1 = threading.Trhead(target=foo).start()thread2 = threading.Trhead(target=foo).start()에서 멀티코어환경에서 실행시킨다고 가정할 시에는 이 코드를 실행시켯을때 스레드 컨텍스트 스위칭이 일어나지 않겠죠 ??
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
vivado
안녕하세요. tool 관련 질문드립니다.vivado로 진행해도 상관이 없을까요?또한 zynq z7-20 보드가 있어 직접 설계한 부분을 hw에서 구현출력값을 확인하고 싶어 질문드립니다. 앞으로 프로젝트 진행과정에서 직접 hw구현 시 어떠한 방식으로 확인 가능할까요?예를 들어 serial 통신이나 ila같은 방식으로 확인하는게 좋을까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
대기상태
전 학습강의에서는 입출력 방식에는 크게 프로그램입출력, 입터럽트기반 입출력, DMA 입출력 방식이 있었는데, 여기서 입출력 작업때 프로세스 상태가 대기상태로 바뀐느경우는 프로그램 입출력 방식을 말하는거죠 ? 프로세스의 상태 레지스터를 주기적으로 확인한다고 했으니 cpu가 여기서 쓰이므로 대기상태로 가는것인가요 ?혹은 입터럽트 기반 방식도 말하는건가요?인터럽트 서비스 루틴을 실행하는 동안 대기 상태로 변하는건가요 ? DMA방식은 명령을 읽을때 DMA컨트롤러를 사용하면 되니까 CPU는 점유될 필요가 없다고 생각했습니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
hmmm.................
언니가 들으라고 난리를 쳐서 한번 들어보는데 아죠씨 강의 아주 쏙쏙 이해 잘되네요 But you talk so many. 흠... 다음 강의 34분인데 I'm will effort.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
운영체제
fopen 과같은 코드는내부적으로 운영체제가 파일을 접근하는 것이기때문에,C프로그램 ( 응용프로그램 ) 은 운영체제를 통해서 파일에 접근한다고 볼수있겟네요
-
해결됨독하게 시작하는 C 프로그래밍
예제를 풀었는데 이런 방법도 가능한지 피드백 부탁드립니다.
#include <stdio.h>int main() { int nArray[5][5] = { 0 }; int cnt = 0; int tnt = cnt + 5; for (int i = 0; i < 5 ; ++i) { if (i%2 == 0) // 짝수 홀수구분 for (int j = 0; j < 5; ++j) { nArray[i][j] = ++cnt; } else for (int k = 4; k >= 0; --k) { nArray[i][k] = ++cnt; } } for (int i = 0; i < 5;++i) { for (int j = 0; j < 5; ++j) { printf("%d ", nArray[i][j]); } putchar('\n'); } printf("%d", cnt); return 0;} i값을 짝/홀 수로 분류하는 것 까지는 동일한데 열 부분을 보수 생각을 못하고 for문을 하나 더 돌려서4에서부터 1씩 감소하는 방향으로 풀었는데 논리적으로 오류가 없을까요?
-
해결됨독하게 시작하는 C 프로그래밍
int[5][5] 배열 실습 과제 관련 질문
안녕하세요.강사님 강의 잘 듣고 있습니다. 좋은 강의에 먼저 감사 드립니다. 본 강의에서 int[5][5] 배열에 1 ~ 25 값을 입력하는 프로그램을 작성하는 중에 강사님께서는 for 문을 두 번 사용하여 작성하였고, 저는 for문을 1회 사용해서 과제를 수행했습니다. 전체 loop 횟수는 25회로 동일한 것으로 보이나 혹시 두 코드 간 속도 차이가 존재하는지 궁금합니다. 요즘 컴퓨팅 성능이 워낙 좋아 큰 문제는 되지 않겠지만 궁금증이 생겨서 질문 남깁니다. 아래는 제가 작성한 코드 입니다. #include <stdio.h>#include <stdlib.h>int main(void){ int aList[5][5] = { 0 }; for (int i = 0; i < countof(aList) * countof(aList[0]); i++) { if (i != 0 && i % 5 == 0) { printf("\n"); } printf("%2d ", aList[i / 5][i % 5]); aList[i / 5][i % 5] = i + 1; } printf("\n"); for (int i = 0; i < countof(aList) * countof(aList[0]); i++) { if (i % 5 == 0) { printf("\n"); } printf("%2d ", aList[i / 5][i % 5]); } return 0;} 감사합니다.좋은 하루 보내세요 :)
-
해결됨독하게 시작하는 C 프로그래밍
프로그래밍에서 과정과 결과 중에 어떤게 더 중요한가요
문제를 풀고 정답을 맞춰서 기분이 좋던 와중, 선생님의 답안과 비교해 보다가 문득 조금 다른 풀이과정이 있어서 질문드립니다. 먼저 제 코드는 아래와 같습니다. int main(void){ int n[5] = { 2,5,3,1,4 }; int nmin = 0; for (int i = 0; i < 5; ++i) { for (int j = i ; j < 5;++j) if (n[i] > n[j]) { nmin = n[j]; n[j] = n[i]; n[i] = nmin; printf("%d %d %d %d %d\n", n[0], n[1], n[2], n[3], n[4]); } } for (int u = 0; u < 5; ++u) printf("%d", n[u]);} 빨간색으로 표시 해 둔 부분이 강사님과 조금 다른 부분이 있습니다. 모범답안(?) 에는 변수 j = i +1 으로 설정해라 가 정답이었고 저는 j = i 로 설정했었습니다. 만약 이러한 경우에 과정이 조금 다르다고 해서 틀린 부분을 끝가지 더 이해하고 복기하는 방법론이 나을까요 아니면결과에 조금 더 집중하고 전체적인 진도를 우선시 하여 가져가는 게 나을까요? 추가로 저의 상황은 저는 방통대 컴과 학과에 편입 준비중에 있고 프로그래밍의 이해를 위해 C언어를 먼저 수강중인 학생입니다. 추후 java와 같은 객체지향 언어를 공부 할 계획에 있습니다.
-
해결됨독하게 시작하는 C 프로그래밍
for문 문제 하나로 5시간 썼습니다
공백 * 출력 놀이 응용인데요오늘 오전10시반부터 지금 오후 4시30분인데 밥먹는 시간 빼고 최소 5시간 이상 썼는데도 답이 안나오네요. 그냥 답을 보고 외우는게 좋을까요? 성격상 수학문제 풀때도 답지 절대 안보고 끝까지 싸매는 스타일인데 너무 비효율적일까요..