⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example.v

📁 这个是systemc的一个小的程序
💻 V
字号:
/*****************************************************************************    Example convertable SystemC header file *****************************************************************************/module example (reset, clk, start, done, state, offset, target, variable);  input          reset;  input          clk;  input          start;  output         done;  output [2:0]   state;  input  [1:0]   offset;  input  [7:0]   target;  output [7:0]   variable;  reg            done;  reg    [2:0]   state;  reg    [7:0]   variable;  reg    [2:0]   next_state;  reg            next_done;  reg    [7:0]   next_variable;/*****************************************************************************    `Methods file of convertable SystemC example program    `Author - John Hamilton*****************************************************************************///`Definition of set_state methodalways @(posedge clk or posedge reset)begin  if (reset) begin    done <= 0;    state <= `IDLE;    variable <= 0;  end else begin    done <= next_done;    state <= next_state;    variable <= next_variable;  endend//`Definition of get_next_state methodalways @(state or start or variable or offset or target)begin  case (state)     `IDLE: begin  // Wait for start signal to occur      if (start) begin	next_state = `START;	next_done = 0;	next_variable = 0;      end else begin	next_state = `IDLE;	next_done = done;	next_variable = variable;      end    end    `START: begin  // Wait until start signal goes away      if (start) begin	next_state = `START;	next_variable = variable + 1;      end else begin	next_state = `STEP1;	next_variable = variable;      end      next_done = done;    end    `STEP1: begin  // First step in processing something      next_state = `STEP2;      next_done = 0;      next_variable = {variable[7:5],offset,variable[2:0]};    end    `STEP2: begin  // Next step in processing something      if ((variable < (offset << 4)) && (offset > 1)) begin	next_state = `STEP2;	next_variable = variable << 1;      end else begin	next_state = `STEP3;	next_variable = variable;      end      next_done = 0;    end    `STEP3: begin  // Next step in processing something      next_state = `STEP4;      next_done = 0;      next_variable[3:0] = 4'hf;      next_variable[7:4] = variable[7:4];    end    `STEP4: begin  // Next step in processing something      if (variable < offset * 24) begin	next_state = `STEP4;	next_variable = variable + 1;      end else begin	next_state = `DONE;	next_variable = variable;      end      next_done = 0;    end    `DONE: begin  // Finish up and go back to IDLE      next_state = `IDLE;      next_done = 1;      next_variable = variable;    end    default: begin  // `Define unused states to avoid latch generation in synthesis      next_state = `IDLE;      next_done = done;      next_variable = variable;    end  endcaseendendmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -