분류 전체보기
비바도 시뮬레이션 멈춤 현상
executing simulation step에서 멈추고 응답없음이 뜨는 현상 구글링으로 찾아봐도 딱히 뾰족한 해결 방법은 안보이고... 이게 매번 이러는게 아니라 10번중 한번정도(...)는 제대로 되니까 더 모르겠음 내가 해본 방법: 백신 지우기, 삭제 및 재설치, 관리자 권한으로 실행, 파일 경로 바꾸기, reset_simulation -simset sim_1 -mode behavioral 코드 사용, 램 용량 큰걸로 바꿔끼기(현재 16기가), 시뮬레이션 폴더 다 지우고 다시 돌리기 등 매우 간단한 코드에서도 이러는데 대체 문제가 뭔지 모르겠다..... 로그 봐도 문제 없어 보이는데 이거만 해결하고 집가려했는데... 못가는중
[Verilog] 베릴로그 관련 자잘한 거 정리
계속 업데이트 중 * 벡터의 모든 비트를 초기화 시킬 때 reg [7:0] a = 8'b10100001; initial a = a
[Verilog] F/F 코드
D F/F with synchronous reset & CE reset ce d Q 0 0 0 q 0 0 1 q 0 1 0 0 0 1 1 1 1 x x 0 module d_ff_ce_synch_reset( input d, input ce, input clk, input reset, output reg q ); always @(posedge clk) begin if(reset) begin q
비바도 공부 자료 추천
이쪽 분야는 국내에 제대로 정리된 학습 자료가 너무 없는 것 같다.. 근데 공식 사이트에 튜토리얼이랑 학습 자료가 잘 정리되어 있어서 가져옴 HDL Design using Vivado www.xilinx.com 알못도 바로 보면서 따라할 수 있는 난이도라 입문용으로 좋은 것 같다. +) 참고로 비바도 실행할때 자꾸 이유없이 종료되는 현상이 있다면 윈도우 사용자 계정 이름을 영어로 바꿔보세요. 아니면 관리자 계정으로 실행해보는거 추천... 이것 때문에 엄청 헤맸었는데 기존 계정 말고 administrator 계정으로 실행하니까 됨.. +) 비바도는 프로그램이 무거워서 사양이 좀 중요한 것 같다. 사용자 계정 이름도 영어이고 딱히 문제될 것이 없는데 계속 crash가 난다면 램을 더 큰 용량으로 구매하시는 ..
[Verilog] 베릴로그에서의 엔디안
헷갈려서 간단하게 정리함 wire [7:0] C; wire [0:7] D; 다음과 같은 경우, 각각의 LSB는 C[0], D[7]이다. C의 경우 LSB가 더 작은 주소값에 위치하므로 little endian이고, D의 경우 LSB가 더 큰 주소값에 위치하므로 big endian이 된다.
[Verilog] 중첩된 블록, 명명된 블록, disable
중첩된 블록 블록은 중첩될 수 있다. 순차 처리 블록과 병렬 처리 블록을 중첩시키는 것 또한 가능하다. initial begin x = 1'b0; fork #5 y = 1'b1; #10 z = {x, y}; join #20 w = {y, x}; end 명명된 블록 블록에 이름을 붙일 수 있다. 명명된 블록의 지역 변수는 계층적 이름 참조를 사용하여 접근할 수 있으며, disable 키워드를 통해 블록의 수행을 무효화시킬 수 있다. initial begin: block1 //block1이라는 순차 처리 블록 integer i; //지역변수, block1.i와 같이 접근할 수 있다. end disable, 명명된 블록의 무효화 disable 키워드는 명명된 블록의 수행을 종결시킬 수 있다. 즉, 설계에서 명..
[Verilog] 순차 처리 블록과 병렬 처리 블록 / fork, join
begin - end로 작성되는 블록은 순차 처리 블록으로, 논블록킹 할당을 제외하면 지정된 순서에 따라 블록의 문장들이 처리된다. 한 문장의 수행이 완전히 끝나야지 다음 문장으로 넘어갈 수 있다. 반면 병렬 처리 블록은 fork - join으로 작성되는 블록으로, 다음과 같은 특성을 갖는다. 병렬 처리 블록의 문장들은 동시에 수행된다 각 문장에 할당된 지연 기반 또는 사건 기반 제어에 의해서 문장의 순서가 조절된다 만약 지연 기반 또는 사건 기반 제어가 지정되었다면, 그것은 블록 안으로 들어가는 시간과 관계있다 각 문장에 할당된 지연은 문장을 만나는 순간을 기준으로 하므로 각 문장의 지연은 블록 안으로 진입하는 시간과 관계있게 된다.(모든 문장이 동시에 실행되므로)