설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 🙂 [1. 질문 챕터] : fpga 외전 1 시계만들기 Chapter 1 2분 9초 퀴즈 4번 부분 [2. 질문 내용] cnt flipflop의 변수 출력값이 1억 - 1이라고 하셨는데, 1억이 아닌지 여쭤보고 싶습니다. 보여주신 코드 상에서는 cnt f/f 변수의 출력값이 1억 -1임을 시뮬레이션에서 어떻게 확인하는 것인지 잘 모르겠어서, 아래와 이 d_flipflop 모듈을 추가한 회로도를 사용하여 시뮬레이션을 돌려보았습니다. 그 결과 flip flop의 output 값이 1억이 나타났는데 확인해주시면 정말 감사하겠습니다 [3. 시도했던 내용, 그렇게 생각하는 이유] 처음 enable이 켜졌을 때 combinational logic에 의해 d_flipflop의 input 값이 1이 되고, rising edge일 때 해당 값이 저장되므로 첫번째 사이클부터 cnt f/f 변수의 출력값이 1로 나타난다고 생각했습니다. 따라서 1초가 지난 이후에도 출력값이 1억이 될 것이라고 생각했습니다. 해당 회로도를 기반으로 시뮬레이션을 돌려본 결과 입니다. (편의상 100사이클만 수행하였습니다.) 100 사이클 이후 d_flipflop의 outpu이 100으로 나타나므로 퀴즈 4번의 결과 또한 1억이 나올 것 같은데, 1억 -1이 나타나는 이유가 무엇인지 궁금합니다. +) posedge에 enable이 켜지는 상황에서는 posedge 시간에 f/f에 stable한 값이 전달되지 않으므로 첫 사이클에서의 output value가 0임을 확인했습니다. 최종적으로 cnt f/f의 출력값은 99였습니다. 그러나 이때에는 최종적인 cnt 변수 값 또한 99로 나타나므로 만약 퀴즈 4의 가정 상황이 posedge에서 enable이 켜지는 상황이라면 Q3과 Q4의 답 모두 1억 -1이 되어야 할 것 같습니다. 아래는 사용한 코드입니다. 혹시라도 시뮬레이션에서 잘못된 부분이 있다면 알려주시면 감사하겠습니다. // tb_quiz.v `timescale 1ns/1ps module tb_quiz(); reg clk; reg reset_n; reg enable; wire [31:0] cnt; initial begin clk <= 0; reset_n <= 1; enable <= 0; #50 reset_n <= 0; #10 reset_n <= 1; #50 enable <= 1; #1000 $finish; end always #5 clk = ~clk; quiz DUT ( .clk (clk), .reset_n (reset_n), .enable (enable), .o_cnt (cnt) ); endmodule // quiz.v `timescale 1ns/1ps module quiz(input clk, input reset_n, input enable, output [31:0] o_cnt); wire [31:0] current_cnt; reg [31:0] next_cnt; always @(*) begin if (enable) begin next_cnt <= current_cnt + 1; end else begin next_cnt <= current_cnt; end end assign o_cnt = current_cnt; d_flipflop u_d_flipflop( .clk (clk), .reset_n (reset_n), .i_value (next_cnt), .o_value (current_cnt) ); endmodule `timescale 1ns/1ps module d_flipflop (input clk, input reset_n, input [31:0] i_value, output [31:0] o_value); reg [31:0] r_value; assign o_value = r_value; always @(posedge clk or negedge reset_n) begin if (!reset_n) begin r_value <= 0; end else begin r_value <= i_value; end end endmodule
안녕하세요. 무드케이스2 에 9.33초 강의 듣고 있는데요, 기둥의 위아래 패치 적용중. 윗면은 잘 적용이 되는데, 아랫면은 라인을 다 잡아도 OK버튼이 비활성화되어 완료할 수 없습니다. 뭐가 문제인걸까요? 윗면 작업시와 다른점은 윗면 patch 작업시에는 엣지 선택할 때 오른쪽 하단에 edge 라고 표시되는데, 아랫면 엣지를 선택하면 2selections라고 나오네요.
컴퓨터 공학과를 나와 IT 기본 지식(운영체제, 네트워크, 언어 기본 지식)은 보유하고 있습니다. 현재 IT 기술 지원일을 하고 있고 이 분야랑 관계가 없는 신입 QA 일을 목표로 하고 있습니다. 취준을 본격적으로 하기 전에 방향성을 확실히 잡고 싶어 질문 드립니다. 1. QA에서 가장 중요한 핵심 역량 2. QA 포지션에 신입으로 들어가려면 가장 중요한 준비 3. 면접에서 중요하게 보는 부분 4. 제가 수동 테스트 포트폴리오를 준비하고 있는데, 여기에 꼭 들어가야 하는 항목 5. 제가 지금 IT 기술 지원 일을 하고 있는데, 이 경험을 QA 직무에 어떻게 연결하면 좋을지? 6. 하루 일과 7. 실무에서 사용하는 툴 8. 수동 테스트 외에 자동화는 어느 수준까지 신입에게 기대하는 부분
안녕하세요 맛비님! 통신 모뎀 회사에 재직중입니다. 블록 디자인 작업(이건 노력, 시간 투자로 실력이 늘거라고 생각하는 중입니다..), AXI 버스, SPI, I2C, Ethernet, UART 를 사용해야 하는 상황이어서 verilog 시즌1, FPGA 시즌1 에 이어서 verilog 시즌2를 듣고 있습니다! 해당 강의 이후에는 fpga 강의에서 추천해주신 워크숍 내용을 공부할 예정입니다. 맛비님 강의에서는 AXI 버스를 사용하는 방법을 배우고 있고 추가로 SPI, I2C, UART, Ethernet 을 사용할 줄 아는 능력을 갖추기 위해서 Xilinx 사 워크숍 내용으로 커버가 될지 궁금합니다! 추가로 추천하시는 공부방법이 있는지 알려주시면 감사하겠습니다 ㅎ
안녕하세요. 강사님! "elasticsearch 설치해보기" 부분을 듣고 있는데 docker cp elasticstack_docker-es01-1:/usr/share/elasticsearch/config/certs/ca/ca.crt /tmp/. 이 부분에서 막혔습니다. 윈도우 환경의 "git bash"로 실습을 하고 있는데, 윈도우의 경우 /tmp/. 경로를 인식할수 없기 때문에 절대결로로 하라고 해서 C:\tmp를 만들고 아래같이 명령어를 치면 docker cp elastic-stack-docker-part-one-es01-1:/usr/share/elasticsearch/config/certs/ca/ca.crt C:\tmp 이런 메세지가 나오는데 copying between containers is not supported 윈도우 환경에서 이 명령을 실행하려면 어떻게 해야 할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자바에서는 사용하지 않는 값은 GC가 알아서 제거해준다고 들었는데, 꼭 릴리즈를 해줘야 하는 필요가 쓰레드로컬에서는 있는건가요?
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
안녕하세요 앨런님! 좋은 강의 잘 듣고 있습니다. 강의의 수강 기간이 곧 만료되어 수강 연장을 요청드리고자 이렇게 글을 남깁니다. 업무 병행 중이라 학습 진도가 예상보다 늦어졌고, 해당 강의를 끝까지 제대로 수강하고 싶은 마음이 큽니다. 혹시 가능하다면 강의 기간을 연장해주실 수 있을지 여쭤봅니다. 항상 좋은 강의 감사드립니다!
안녕하세요. 강의에서, 값 타입에서, 기본타입은 == 비교를 해도되는데, 그 외에 객체타입이나 임베디드타입은 equals를 재정의해서 사용하여 비교해야한다. 라고 말씀하셨습니다. 앞서 강의에서도 객체타입 이라는 단어가 나오는데, 객체타입은 엔티티 타입으로 분류가 되나요? 아니면 값타입으로 분류가 되나요? 엔티티 타입인거 같기도하고.. 값타입인거 같기도해서.. 어떤것으로 분류되는것인지 이유가 궁금합니다...ㅠㅠ 값타입은 기본값타입, 임베디드타입, 컬렉션값타입이 있다고 앞선 강의에서 말씀해주셨는데, 그럼 강의에서 나오는 Address 객체타입 은 어디에 속하는것인가요 ..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. char 대신 String만 쓸 수도 있나요