inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

L2_P08 SRAM 코드 리뷰 부탁드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

`timescale 1ns / 1ps module sync_sram_ctrl #( parameter ADDR_WIDTH = 8, parameter DATA_WIDTH = 16 )( input logic clk, input logic rst_n, input logic [ADDR_WIDTH-1:0] addr, input logic [DATA_WIDTH-1:0] data_in, output logic [DATA_WIDTH-1:0] data_out, input logic rd_req, input logic wr_req, output logic ready, // SRAM I/F output logic [ADDR_WIDTH-1:0] sram_addr, output logic [DATA_WIDTH-1:0] sram_data_out, input logic [DATA_WIDTH-1:0] sram_data_in, output logic sram_ce_n, output logic sram_we_n ); // FSM states localparam IDLE = 2'd0; localparam WRITE_REQ = 2'd1; localparam READ_REQ = 2'd2; localparam READ = 2'd3; logic [1:0] state, n_state; // 1. Comb part always_comb begin case(state) IDLE : begin if(rd_req == 1) begin n_state = READ_REQ; end else if(wr_req == 1) begin n_state = WRITE_REQ; end else begin n_state = IDLE; end end WRITE_REQ : begin n_state = IDLE; end READ_REQ : begin n_state = READ; end READ : begin n_state = IDLE; end default : begin n_state = IDLE; end endcase end // 2. Seq part always_ff @(posedge clk or negedge rst_n) begin if(!rst_n) begin state <= IDLE; end else begin state <= n_state; end end // 3. Output part always_comb begin case(state) IDLE : begin ready = 1; sram_ce_n = 1; data_out = sram_data_in; end WRITE_REQ : begin ready = 0; sram_addr = addr; sram_data_out = data_in; sram_ce_n = 0; sram_we_n = 0; end READ_REQ : begin ready = 0; sram_addr = addr; sram_ce_n = 0; sram_we_n = 1; end READ : begin ready = 0; sram_addr = addr; sram_ce_n = 1; sram_we_n = 1; end default : begin ready = 1; end endcase end endmodule 안녕하세요, 강의 잘 수강하고 있습니다. 우선 main 로직부분에서 f/f을 활용해서 초기화를 하셨고, write, read state에서 바로 ce_n, we_n을 1로 만드셨는데 제가 구현한 방식과는 조금 달라서 리뷰 부탁드립니다. 감사합니다.

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 2 좋아요 1 조회수 22

L2_P4 data_average 코드 리뷰 및 waveform 질문 드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

`timescale 1ns / 1ps module data_avg ( input logic clk, input logic rstn, input logic [7:0] i_data, input logic i_valid, output logic [7:0] o_data, output logic o_valid ); //TODO logic [7:0] recent_data [0:3]; logic [9:0] sum; logic [1:0] valid_count; // store recent 4 data when i_valid == 1 always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin for(integer i = 0; i < 4; i++) begin recent_data[i] <= 8'b0; end end else if(i_valid) begin // store data only when i_valid == 1 recent_data[0] <= i_data; for(integer i = 1; i < 4; i++) begin recent_data[i] <= recent_data[i-1]; end end else begin // remain data when i_valid == 0 recent_data[0:3] <= recent_data[0:3]; end end // o_valid is high when valid_count == 4 always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin o_valid <= 1'b0; valid_count <= 2'b0; end else if(i_valid) begin if(valid_count == 3) begin o_valid <= 1'b1; end else if(valid_count < 3) begin o_valid <= 1'b0; valid_count <= valid_count + 1; end end else begin o_valid <= 1'b0; end end always_comb sum = recent_data[0] + recent_data[1] + recent_data[2] + recent_data[3]; always_comb o_data = o_valid ? ( sum[1] == 1 ? (sum[9:2] + 1) : sum[9:2] ) : 8'b0; endmodule 안녕하세요, 강의 잘 수강하고 있습니다. Q1. 작성하신 부분과 꽤 다르게 counter로 설계하였는데 간단하게 리뷰 부탁드리며 counter로 설계할 때와 fsm으로 설계할 때의 장단점이 궁금합니다. Q2. waveform에서 네번째 data가 들어온 바로 다음 rising edge 이후 valid와 average 값이 나와야 할 것 같은데 파형의 expected_data는 왜 한cycle이 더 delay돼서 나오는지 궁금합니다. 감사합니다.

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 2 좋아요 1 조회수 65

LV2-2 Patter Detector code review 부탁드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

`timescale 1ns / 1ps module pattern_detector_no_fsm ( input logic clk, input logic rstn, input logic i_in, output logic o_flag ); //TODO logic [2:0] recent_data; logic before_flag; // store recent 4-bit always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin recent_data <= 3'b0; end else begin recent_data[0] <= i_in; for(int i = 1; i < 3; i++) begin recent_data[i] <= recent_data[i-1]; end end end always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin before_flag <= 1'b0; end else if(recent_data == 3'b101) begin before_flag <= 1'b1; end else begin before_flag <= 1'b0; end end always_comb o_flag = before_flag & i_in ? 1'b1 : 1'b0; endmodule module pattern_detector_fsm ( input logic clk, input logic rstn, input logic i_in, output logic o_flag ); //TODO `define INIT 1'b0 `define TARGET 1'b1 logic [2:0] recent_data; logic state; logic next_state; // store recent 4-bit always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin recent_data <= 3'b0; end else begin recent_data[0] <= i_in; for(int i = 1; i < 3; i++) begin recent_data[i] <= recent_data[i-1]; end end end // FSM // 1. comb part always_comb begin case(state) `INIT : if(recent_data == 3'b101) begin next_state = `TARGET; end else begin next_state = `INIT; end `TARGET : if(recent_data == 3'b101) begin next_state = `TARGET; end else begin next_state = `INIT; end default : next_state = `INIT; endcase end // 2. seq part always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin state <= `INIT; end else begin state <= next_state; end end // 3. output part always_comb o_flag = (state == `TARGET) & (i_in == 1'b1) ? 1'b1 : 1'b0; endmodule 안녕하세요, 코드 리뷰 원할 경우 남기면 리뷰 해주신다고 하셔서 질문 드립니다. 1) no fsm 1011이 됐을 때 다음 rising edge가 아닌 바로 1이 나와야 하기 때문에 101만 저장하여 비교한 후, 최종 출력에 i_in을 and 처리하여 101 + 1 일 경우만 o_flag가 나오도록 했습니다. 2) fsm 1과 비슷한 방법으로 하였는데 강의처럼 fsm의 input을 1이 아닌 3bit(101 target)로 하여, 상태를 2개로 축소시켜 작성하였습니다. 간단하게 리뷰 부탁드립니다!

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 1 좋아요 1 조회수 44

환경 설정하는 guide 최신화 부탁드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

안녕하세요, 이번 강의 처음으로 수강하는 수강생인데 이전 버전의 환경 설정하는 영상이나 글 따라해도 계속 막힙니다. build시 자꾸 에러가 나오거나 vivado가 제대로 실행되지 않는데 이 부분이 해결이 되지 않습니다. 이전 가이드는 꽤 오래되었고, 무료 강의도 아니고 유료 강의인데 그냥 이전 영상을 참고하라고 할 게 아닌 해당 강의의 업로드 시점에서 최신화 된 환경 설정 영상/guide는 당연히 있어야된다고 생각합니다. 최신화 된 내용으로 자세한 guide를 부탁드립니다. 감사합니다.

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 2 좋아요 1 조회수 76

AI 실무활용가이드 PDF 비밀번호

미해결

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

AI 실무활용가이드 PDF 파일들의 p/w 는 어디서 참고하면 될까요?

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
yy_engineer 댓글 1 좋아요 0 조회수 80

quartus timing constraint slack관련 질문

해결됨

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

학습 진행도중 제공된 sv파일들과 sdc를 사용해서 report를 보았는데 강의와 다르게 negative slack이 발생하질 않습니다 slack을 해결하는 것까지 시도해보고싶은데 어떻게 하면 될까요?

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
ghgh73082 댓글 2 좋아요 0 조회수 140

16.임베디드보드 schemetic 설계 setup질문

해결됨

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

symbol,footprint library에서 mixed signal로 지정한 파일은 어디서 다운받을수있나요?

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
ghgh73082 댓글 2 좋아요 0 조회수 82

자동화 실습 2-2 자료 문의

해결됨

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

[자동화 실습 2-2] Monte Carlo PDK 모델링 및 몬테카를로 시뮬레이션 50회 진행하기 자료에서 tsmc018_MC.lib 파일이 있어야 될거 같은데 tsmc018_CN.lib 코너 파일이 있는거 같습니다. 자료 확인 부탁드립니다.

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
oscar130 댓글 2 좋아요 0 조회수 101

EDA playground axi_lite simulation

해결됨

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

quartus에서 문법오류로 강의에서 설명해주신 것과 같이 testbench와 rtl파일들을 복사 붙여넣기 하여 run를 하였으나 다음과 같이 아무런 신호도 나오지 않습니다.

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
2023111762 댓글 2 좋아요 0 조회수 85

tb 오류 (iff)

해결됨

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

제공해주신 testbench 파일을 synthesis 돌리니 다음과 같은 에러가 나왔습니다. 따로 검색을 하니 iff는 Quartus에서 지원하지 않는 문법이라는 답만 얻을 수 있었는데 어떻게 해결하면 좋을지 알려주시면 감사하겠습니다. ==================================================== Error (10170): Verilog HDL syntax error at axi_ tb.sv (276) near text: "iff"; expecting ")". Check for and fix any syntax errors that appear immediately before or at the specified keyword. The Intel FPGA Knowledge Database contains many articles with specific details on how to resolve this error. Visit the Knowledge Database at https://www.altera.com/support/support-resources/knowledge-base/search.html and search for this specific error message number.

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
댓글 2 좋아요 0 조회수 100

한글 주석

미해결

AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증

제공하신 파일을 quartus에 올리니 한글 주석이 안 나오는데 혹시 어떻게 해결해야하나요?

  • python
  • system-verilog
  • uvm
  • batch-script
  • rtl
2023111762 댓글 2 좋아요 0 조회수 145

인기 태그

인프런 TOP Writers

주간 인기글