cache module

This commit is contained in:
Core_kingdom
2025-08-26 16:53:22 +08:00
commit 79dee10db1
124 changed files with 13283 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
module async_fifo #(
parameter DATA_WIDTH = 8,
parameter FIFO_DEPTH = 16
)(
input wr_clk,
input wr_rst_n,
input wr_en,
input [DATA_WIDTH-1:0] wr_data,
output full,
input rd_clk,
input rd_rst_n,
input rd_en,
output [DATA_WIDTH-1:0] rd_data,
output empty
);
reg [DATA_WIDTH-1:0] mem [FIFO_DEPTH -1 : 0];
reg [$clog2(FIFO_DEPTH) : 0] wr_ptr, rd_ptr;
integer i;
always@(posedge wr_clk or negedge wr_rst_n) begin
if(!wr_rst_n) begin
wr_ptr <= 'd0;
for(i=0;i<FIFO_DEPTH;i=i+1) begin
mem[i] <= 'd0;
end
end else if(wr_en && !full) begin
mem[wr_ptr[$clog2(FIFO_DEPTH)-1:0]] <= wr_data;
wr_ptr <= wr_ptr + 1'b1;
end else begin
wr_ptr <= wr_ptr;
end
end
always@(posedge rd_clk or negedge rd_rst_n) begin
if(!rd_rst_n) begin
rd_ptr <= 'd0;
end else if(rd_en && !empty) begin
rd_ptr <= rd_ptr + 1'b1;
end else begin
rd_ptr <= rd_ptr;
end
end
wire [$clog2(FIFO_DEPTH):0] wr_ptr_g , rd_ptr_g;
assign wr_ptr_g = wr_ptr ^(wr_ptr >>1);
assign rd_ptr_g = rd_ptr ^(rd_ptr >>1);
reg [$clog2(FIFO_DEPTH):0] wr_ptr_gr , wr_ptr_grr;
reg [$clog2(FIFO_DEPTH):0] rd_ptr_gr , rd_ptr_grr;
always@(posedge rd_clk or negedge rd_rst_n) begin
if(!rd_rst_n) begin
wr_ptr_gr <= 0;
wr_ptr_grr <=0;
end else begin
wr_ptr_gr <= wr_ptr_g;
wr_ptr_grr <= wr_ptr_gr;
end
end
always@(posedge wr_clk or negedge wr_rst_n) begin
if(!wr_rst_n) begin
rd_ptr_gr <= 0;
rd_ptr_grr <=0;
end else begin
rd_ptr_gr <= rd_ptr_g;
rd_ptr_grr <= rd_ptr_gr;
end
end
assign rd_data = mem[rd_ptr[$clog2(FIFO_DEPTH)-1:0]];
assign full = ((wr_ptr_g[$clog2(FIFO_DEPTH)] !=
rd_ptr_grr[$clog2(FIFO_DEPTH)]) && (wr_ptr_g[$clog2(FIFO_DEPTH)-1] !=
rd_ptr_grr[$clog2(FIFO_DEPTH)]-1) && (wr_ptr_g[$clog2(FIFO_DEPTH)-2:0] ==
rd_ptr_grr[$clog2(FIFO_DEPTH)-2 : 0])) ? 1:0;
assign empty = (rd_ptr_g[$clog2(FIFO_DEPTH) : 0] ==
wr_ptr_grr[$clog2(FIFO_DEPTH) :0]) ? 1:0;
endmodule

View File

@@ -0,0 +1,196 @@
module axi_write_ctrl #(
parameter AXI_ID_W = 8, // AXI ID位宽
parameter AXI_ADDR_W = 32, // AXI地址位宽
parameter AXI_DATA_W = 256, // AXI数据位宽
parameter AXI_STRB_W = AXI_DATA_W / 8 // 字节选通位宽(256bit对应32字节)
) (
input wire clk, // 系统时钟
input wire rst_n, // 异步复位低有效
// 控制与数据输入
input wire start_en, // 写事务启动使能
input wire [AXI_ADDR_W-1:0] sram_base_addr, // SRAM基地址
input wire [AXI_DATA_W-1:0] fifo_rd_data, // FIFO读数据
input wire fifo_empty, // FIFO空标志
output reg fifo_rd_en, // FIFO读使能
// AXI AW通道
output reg [AXI_ID_W-1:0] axi_m_awid, // 写地址ID
output reg [AXI_ADDR_W-1:0] axi_m_awaddr, // 写地址
output reg [3:0] axi_m_awlen, // 突发长度(0表示1个数据)
output reg [2:0] axi_m_awsize, // 数据宽度(5对应32字节)
output reg [1:0] axi_m_awburst, // 突发类型(0表示增量)
output reg axi_m_awlock, // 锁定信号(0表示普通访问)
output reg [4:0] axi_m_awcache, // 缓存属性(0表示非缓存)
output reg [2:0] axi_m_awprot, // 保护属性(0表示普通)
output reg [4:0] axi_m_awqos, // QoS优先级(0表示默认)
output reg axi_m_awvalid, // 写地址有效
input wire axi_m_awready, // 写地址就绪
// AXI W通道
output reg [AXI_ID_W-1:0] axi_m_wid, // 写数据ID
output reg [AXI_DATA_W-1:0] axi_m_wdata, // 写数据
output reg [AXI_STRB_W-1:0] axi_m_wstrb, // 字节选通(全1表示所有字节有效)
output reg axi_m_wlast, // 突发结束标志
output reg axi_m_wvalid, // 写数据有效
input wire axi_m_wready, // 写数据就绪
// AXI B通道
input wire [AXI_ID_W-1:0] axi_m_bid, // 写响应ID
input wire [1:0] axi_m_bresp, // 写响应(0表示OKAY)
input wire axi_m_bvalid, // 写响应有效
output reg axi_m_bready, // 写响应就绪
// 状态输出
output reg axi_busy, // AXI写事务忙
output reg axi_done // AXI写事务完成
);
// 内部信号定义
reg [AXI_ADDR_W-1:0] curr_addr; // 当前写地址(基于基地址递增)
reg [1:0] axi_state; // AXI状态机状态寄存器
// 状态定义
localparam AXI_IDLE = 2'd0; // 空闲状态
localparam AXI_AW = 2'd1; // 地址通道传输状态
localparam AXI_W = 2'd2; // 数据通道传输状态
localparam AXI_B = 2'd3; // 响应通道传输状态
// 1. AXI状态机时序逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
axi_state <= AXI_IDLE;
curr_addr <= {AXI_ADDR_W{1'b0}};
axi_busy <= 1'b0;
axi_done <= 1'b0;
end else begin
axi_done <= 1'b0; // 单周期有效
case (axi_state)
AXI_IDLE: begin
axi_busy <= 1'b0;
// 启动条件: 使能信号有效且FIFO非空
if (start_en && !fifo_empty) begin
axi_state <= AXI_AW;
axi_busy <= 1'b1;
// 初始化当前地址为基地址(首次)或保持上次地址(连续传输)
curr_addr <= (curr_addr == {AXI_ADDR_W{1'b0}}) ? sram_base_addr : curr_addr;
end
end
AXI_AW: begin
// 地址通道握手完成进入数据通道
if (axi_m_awvalid && axi_m_awready) begin
axi_state <= AXI_W;
// 预计算下一次地址(当前地址 + 数据宽度字节数)
curr_addr <= curr_addr + (AXI_DATA_W / 8);
end
end
AXI_W: begin
// 数据通道握手完成进入响应通道
if (axi_m_wvalid && axi_m_wready) begin
axi_state <= AXI_B;
end
end
AXI_B: begin
// 响应通道握手完成事务结束
if (axi_m_bvalid && axi_m_bready) begin
axi_state <= AXI_IDLE;
axi_done <= 1'b1; // 标记事务完成
end
end
endcase
end
end
// 2. AXI AW通道信号生成逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
axi_m_awid <= {AXI_ID_W{1'b0}};
axi_m_awaddr <= {AXI_ADDR_W{1'b0}};
axi_m_awlen <= 4'd0;
axi_m_awsize <= 3'd5; // 5对应32字节(2^5 = 32)
axi_m_awburst <= 2'd0; // 0表示INCR(增量)突发
axi_m_awlock <= 1'b0;
axi_m_awcache <= 5'd0; // 非缓存非缓冲
axi_m_awprot <= 3'd0; // 普通非特权数据访问
axi_m_awqos <= 5'd0; // 默认QoS级别
axi_m_awvalid <= 1'b0;
end else begin
case (axi_state)
AXI_AW: begin
axi_m_awid <= 8'd0; // 固定ID为0
axi_m_awaddr <= curr_addr; // 当前地址
axi_m_awlen <= 4'd0; // 突发长度为1(0+1)
axi_m_awsize <= 3'd5; // 保持32字节宽度
axi_m_awburst <= 2'd0; // 保持增量突发
axi_m_awvalid <= 1'b1; // 地址有效
end
default: begin
axi_m_awvalid <= 1'b0; // 非地址状态时无效
end
endcase
end
end
// 3. AXI W通道信号生成逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
axi_m_wid <= {AXI_ID_W{1'b0}};
axi_m_wdata <= {AXI_DATA_W{1'b0}};
axi_m_wstrb <= {AXI_STRB_W{1'b1}}; // 所有字节有效
axi_m_wlast <= 1'b1; // 单拍突发始终为1
axi_m_wvalid <= 1'b0;
fifo_rd_en <= 1'b0;
end else begin
case (axi_state)
AXI_AW: begin
// 地址握手完成前预读FIFO
if (axi_m_awready) begin
fifo_rd_en <= 1'b1; // 读取FIFO数据
axi_m_wid <= 8'd0; // 与AW通道ID保持一致
axi_m_wdata <= fifo_rd_data; // 锁存FIFO数据
axi_m_wvalid <= 1'b1; // 数据有效
end else begin
fifo_rd_en <= 1'b0;
axi_m_wvalid <= 1'b0;
end
end
AXI_W: begin
fifo_rd_en <= 1'b0; // 停止读FIFO
// 数据握手完成后失效
if (axi_m_wready) begin
axi_m_wvalid <= 1'b0;
end
end
default: begin
fifo_rd_en <= 1'b0;
axi_m_wvalid <= 1'b0;
end
endcase
end
end
// 4. AXI B通道信号生成逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
axi_m_bready <= 1'b0;
end else begin
case (axi_state)
AXI_B: begin
axi_m_bready <= 1'b1; // 准备接收响应
// 响应握手完成后失效
if (axi_m_bvalid) begin
axi_m_bready <= 1'b0;
end
end
default: begin
axi_m_bready <= 1'b0;
end
endcase
end
end
endmodule

View File

@@ -0,0 +1,109 @@
module data_assemble #(
parameter PIXEL_WIDTH = 8, // 单通道像素位宽
parameter GRAY_PIXEL_CNT = 32, // Gray模式32个8bit256bit
parameter RGB_PIXEL_CNT = 8 // RGB模式8个32bit24bit数据+8bit补零256bit
) (
input wire clk,
input wire rst_n,
input wire en, // 拼接使能
input wire input_pixel_type, // 0=Gray1=RGB
input wire [PIXEL_WIDTH-1:0] ir_ch0, // CH0数据
input wire [PIXEL_WIDTH-1:0] ir_ch1, // CH1数据
input wire [PIXEL_WIDTH-1:0] ir_ch2, // CH2数据
input wire pixel_valid, // 像素有效
output reg done, // 拼接完成256bit就绪
output reg [255:0] assembled_data // 拼接后256bit数据
);
// 内部信号
reg [4:0] gray_cnt; // Gray模式计数器0~31
reg [2:0] rgb_cnt; // RGB模式计数器0~7
reg [255:0] data_reg; // 拼接数据寄存器
reg sync_out,sync_out_r;
// 拼接计数器复位逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
gray_cnt <= 5'd0;
rgb_cnt <= 3'd0;
end else if (!en) begin
gray_cnt <= 5'd0;
rgb_cnt <= 3'd0;
end else if (pixel_valid) begin
case (input_pixel_type)
1'b0: begin // Gray模式
gray_cnt <= (gray_cnt == GRAY_PIXEL_CNT ) ? 5'd0 : gray_cnt + 5'd1;
end
1'b1: begin // RGB模式
rgb_cnt <= (rgb_cnt == RGB_PIXEL_CNT ) ? 3'd0 : rgb_cnt + 3'd1;
end
endcase
end
end
// 数据拼接逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
data_reg <= 256'd0;
assembled_data <= 256'd0;
sync_out <= 'd0;
sync_out_r <= 'd0;
end else if (!en) begin
sync_out <= 'd0;
data_reg <= 256'd0;
assembled_data <= 256'd0;
done <= 'd0;
end else if (pixel_valid) begin
case (input_pixel_type)
1'b0: begin // Gray模式32x8bit256bit高位到低位拼接
data_reg[(GRAY_PIXEL_CNT -1- gray_cnt) * PIXEL_WIDTH +: PIXEL_WIDTH] <= ir_ch0;
// 计数器满拼接完成锁存数据
if (gray_cnt == GRAY_PIXEL_CNT -1 ) begin
sync_out = 1'd1;
//data_reg <= 256'd0; // 复位寄存器准备下一轮
end
end
1'b1: begin // RGB模式8x32bit256bit32bit=8bit补零+CH2+CH1+CH0
reg [31:0] rgb_pixel;
rgb_pixel = {8'd0, ir_ch2, ir_ch1, ir_ch0}; // 补零+三通道数据
data_reg[(RGB_PIXEL_CNT - 1 - rgb_cnt) * 32 +: 32] <= rgb_pixel;
// 计数器满拼接完成锁存数据
if (gray_cnt == GRAY_PIXEL_CNT -1 ) begin
sync_out = 1'd1;
//data_reg <= 256'd0; // 复位寄存器准备下一轮
end
end
endcase
end
end
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
sync_out_r <= 'd0;
end else begin
sync_out_r <= sync_out;
end
end
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
assembled_data <= 'd0;
done <= 'd0;
end else if (sync_out_r) begin
assembled_data <= data_reg;
done <= 1'b1;
end
end
always @(posedge clk or negedge rst_n) begin
if (done == 1'b1) begin
done <= 'd0;
end
end
endmodule

470
rtl/data_cache/data_cache.v Normal file
View File

@@ -0,0 +1,470 @@
module data_cache #(
// 异步FIFO参数IR系统时钟域
parameter ASYNC_FIFO_DEPTH = 1024, // 异步FIFO深度
parameter ASYNC_FIFO_DATA_W = 27, // 27bit=1(ir_valid)+1(ir_vs)+1(ir_hs)+8(ch0)+8(ch1)+8(ch2)
// 同步FIFO参数系统时钟域256bit数据缓存
parameter SYNC_FIFO_DEPTH = 2048, // 同步FIFO深度适配256x256图像
parameter SYNC_FIFO_DATA_W = 256, // 同步FIFO数据位宽AXI写数据位宽
// 直方图RAM参数1x256每个通道1个
parameter HIST_RAM_DEPTH = 256, // 直方图RAM深度0~255对应8bit像素值
parameter HIST_RAM_DATA_W = 1, // 直方图RAM数据位宽1bit存在标记
// AXI参数
parameter AXI_ID_W = 8, // AXI AW/W ID位宽
parameter AXI_ADDR_W = 32, // AXI地址位宽
parameter AXI_DATA_W = 256, // AXI数据位宽与SYNC_FIFO_DATA_W一致
parameter AXI_STRB_W = AXI_DATA_W / 8 // AXI WSTRB位宽32bit
) (
// -------------------------- Common 端口 --------------------------
input wire clk, // 系统时钟AXI/控制逻辑时钟
input wire rst_n, // 系统复位低有效同步clk
// -------------------------- 配置信号端口 --------------------------
input wire ipa_en, // IPA总使能
input wire update_src_trig, // 更新原始图像触发高有效
input wire input_pixel_type, // 输入像素类型0=Gray1=RGB
input wire [15:0] src_pixel_height, // 原始图像高度
input wire [15:0] src_pixel_width, // 原始图像宽度
input wire [15:0] histogram_low_num, // 直方图低位数计算min用
input wire [15:0] histogram_high_num, // 直方图高位数计算max用
output reg src_image_cache_done, // 原始图像缓存完成高有效
// -------------------------- 连接Windowed模块端口 --------------------------
output reg [7:0] dwidth_conv_min_ch0, // CH0归一化min值
output reg [7:0] dwidth_conv_max_ch0, // CH0归一化max值
output reg [7:0] dwidth_conv_min_ch1, // CH1归一化min值
output reg [7:0] dwidth_conv_max_ch1, // CH1归一化max值
output reg [7:0] dwidth_conv_min_ch2, // CH2归一化min值
output reg [7:0] dwidth_conv_max_ch2, // CH2归一化max值
// -------------------------- IR图像输入端口IR时钟域 --------------------------
input wire ir_clk, // IR像素同步时钟
input wire ir_valid, // IR像素有效信号
input wire ir_vs, // IR垂直同步帧起始
input wire ir_hs, // IR水平同步行起始
input wire [7:0] ir_ch0, // IR CH0数据Gray时有效
input wire [7:0] ir_ch1, // IR CH1数据RGB时有效
input wire [7:0] ir_ch2, // IR CH2数据RGB时有效
// -------------------------- AXI写总线端口系统时钟域 --------------------------
output reg [AXI_ID_W-1:0] axi_m_awid, // AXI AW通道ID
output reg [AXI_ADDR_W-1:0] axi_m_awaddr, // AXI AW通道地址SRAM起始地址
output reg [3:0] axi_m_awlen, // AXI AW通道突发长度0=1拍
output reg [2:0] axi_m_awsize, // AXI AW通道数据宽度5=32字节=256bit
output reg [1:0] axi_m_awburst, // AXI AW通道突发类型0=INCR
output reg axi_m_awlock, // AXI AW通道锁定0=普通
output reg [3:0] axi_m_awcache, // AXI AW通道缓存属性0=非缓存
output reg [2:0] axi_m_awprot, // AXI AW通道保护属性0=普通
output reg [3:0] axi_m_awqos, // AXI AW通道QoS0=默认
output reg axi_m_awvalid, // AXI AW通道有效
input wire axi_m_awready, // AXI AW通道就绪
output reg [AXI_ID_W-1:0] axi_m_wid, // AXI W通道ID与AW一致
output reg [AXI_DATA_W-1:0] axi_m_wdata, // AXI W通道数据256bit
output reg [AXI_STRB_W-1:0] axi_m_wstrb, // AXI W通道字节使能全1=有效
output reg axi_m_wlast, // AXI W通道突发结束标记
output reg axi_m_wvalid, // AXI W通道有效
input wire axi_m_wready, // AXI W通道就绪
input wire [AXI_ID_W-1:0] axi_m_bid, // AXI B通道ID
input wire [1:0] axi_m_bresp, // AXI B通道响应0=OKAY
input wire axi_m_bvalid, // AXI B通道有效
output reg axi_m_bready // AXI B通道就绪
);
// -------------------------- 内部信号定义 --------------------------
// 1. 复位同步跨时钟域复位处理
wire rst_n_ir; // IR时钟域同步后的复位
wire rst_n_sys; // 系统时钟域同步后的复位
// 2. 异步FIFO信号IR系统时钟域
wire async_fifo_wr_en; // 异步FIFO写使能IR时钟域
wire [ASYNC_FIFO_DATA_W-1:0] async_fifo_wr_data; // 异步FIFO写数据IR时钟域
wire async_fifo_full; // 异步FIFO满IR时钟域
wire async_fifo_rd_en; // 异步FIFO读使能系统时钟域
wire [ASYNC_FIFO_DATA_W-1:0] async_fifo_rd_data; // 异步FIFO读数据系统时钟域
wire async_fifo_empty; // 异步FIFO空系统时钟域
// 3. 跨域后像素信号系统时钟域
wire ir_valid_sys; // 跨域后像素有效
wire ir_vs_sys; // 跨域后帧起始
wire ir_hs_sys; // 跨域后行起始
wire [7:0] ir_ch0_sys; // 跨域后CH0数据
wire [7:0] ir_ch1_sys; // 跨域后CH1数据
wire [7:0] ir_ch2_sys; // 跨域后CH2数据
reg flag;
// 4. 直方图控制信号
wire hist_rst; // 直方图RAM复位帧起始/更新触发
wire hist_wr_en_ch0; // CH0直方图写使能
wire [7:0] hist_wr_addr_ch0; // CH0直方图写地址像素值
wire hist_wr_en_ch1; // CH1直方图写使能
wire [7:0] hist_wr_addr_ch1; // CH1直方图写地址像素值
wire hist_wr_en_ch2; // CH2直方图写使能
wire [7:0] hist_wr_addr_ch2; // CH2直方图写地址像素值
reg hist_calc_en; // 直方图min/max计算使能帧结束后
wire hist_calc_done; // 直方图min/max计算完成
// 5. 数据拼接信号
wire assemble_en; // 数据拼接使能
wire assemble_done; // 数据拼接完成256bit就绪
wire [255:0] assemble_data; // 拼接后256bit数据
// 6. 同步FIFO信号系统时钟域
wire sync_fifo_wr_en; // 同步FIFO写使能
wire [255:0] sync_fifo_wr_data;// 同步FIFO写数据拼接后256bit
wire sync_fifo_full; // 同步FIFO满
wire sync_fifo_rd_en; // 同步FIFO读使能
wire [255:0] sync_fifo_rd_data;// 同步FIFO读数据
wire sync_fifo_empty; // 同步FIFO空
// 7. 帧计数与状态信号
reg [15:0] col_cnt; // 列计数器像素宽度计数
reg [15:0] row_cnt; // 行计数器像素高度计数
reg frame_active; // 帧活跃标记IR_VS后到帧结束
reg axi_write_busy; // AXI写事务忙标记
wire axi_write_done; // 来自 axi_write_ctrl 的写完成标志
// 8. 状态机定义
// typedef enum logic [2:0] {
// S_IDLE, // 空闲等待IPA使能
// S_WAIT_VS, // 等待帧起始IR_VS
// S_RECEIVE_DATA, // 接收像素数据写直方图+拼接
// S_WRITE_FIFO, // 拼接完成写同步FIFO
// S_WAIT_AXI, // 等待AXI写完成
// S_FRAME_DONE // 帧缓存完成置位src_image_cache_done
// } data_cache_state_t;
localparam [3:0] S_IDLE = 3'b000;
localparam [3:0] S_WAIT_VS = 3'b001;
localparam [3:0] S_RECEIVE_DATA = 3'b010;
localparam [3:0] S_WRITE_FIFO = 3'b011;
localparam [3:0] S_WAIT_AXI = 3'b100;
localparam [3:0] S_FRAME_DONE = 3'b101;
reg [2:0] curr_state;
reg [2:0] next_state;
// -------------------------- 子模块实例化 --------------------------
// 1. 复位同步确保跨时钟域复位稳定
rst_sync #(
.SYNC_STAGE(2) // 2级同步
) u_rst_sync_ir (
.clk(ir_clk),
.rst_n_in(rst_n),
.rst_n_out(rst_n_ir)
);
rst_sync #(
.SYNC_STAGE(2)
) u_rst_sync_sys (
.clk(clk),
.rst_n_in(rst_n),
.rst_n_out(rst_n_sys)
);
// 2. 异步FIFOIR时钟域系统时钟域传输像素数据+控制信号
async_fifo #(
.FIFO_DEPTH(ASYNC_FIFO_DEPTH),
.DATA_WIDTH(ASYNC_FIFO_DATA_W)
) u_async_fifo (
// 写端口IR时钟域
.wr_clk(ir_clk),
.wr_rst_n(rst_n_ir),
.wr_en(async_fifo_wr_en),
.wr_data(async_fifo_wr_data),
.full(async_fifo_full),
// 读端口系统时钟域
.rd_clk(clk),
.rd_rst_n(rst_n_sys),
.rd_en(async_fifo_rd_en),
.rd_data(async_fifo_rd_data),
.empty(async_fifo_empty)
);
// 3. 直方图控制模块统计CH0/CH1/CH2直方图计算min/max
histogram_ctrl #(
.HIST_RAM_DEPTH(HIST_RAM_DEPTH),
.HIST_RAM_DATA_W(HIST_RAM_DATA_W)
) u_histogram_ctrl (
.clk(clk),
.rst_n(rst_n_sys),
.hist_rst(hist_rst),
.input_pixel_type(input_pixel_type),
.hist_wr_en_ch0(hist_wr_en_ch0),
.hist_wr_addr_ch0(hist_wr_addr_ch0),
.hist_wr_en_ch1(hist_wr_en_ch1),
.hist_wr_addr_ch1(hist_wr_addr_ch1),
.hist_wr_en_ch2(hist_wr_en_ch2),
.hist_wr_addr_ch2(hist_wr_addr_ch2),
.histogram_low_num(histogram_low_num),
.histogram_high_num(histogram_high_num),
.calc_en(hist_calc_en),
.calc_done(hist_calc_done),
.dwidth_conv_min_ch0(dwidth_conv_min_ch0),
.dwidth_conv_max_ch0(dwidth_conv_max_ch0),
.dwidth_conv_min_ch1(dwidth_conv_min_ch1),
.dwidth_conv_max_ch1(dwidth_conv_max_ch1),
.dwidth_conv_min_ch2(dwidth_conv_min_ch2),
.dwidth_conv_max_ch2(dwidth_conv_max_ch2)
);
// 4. 数据拼接模块Gray:32x8bit256bitRGB:8x32bit256bit
data_assemble #(
.PIXEL_WIDTH(8), // 单通道像素位宽
.GRAY_PIXEL_CNT(32), // Gray模式拼接像素数32x8bit=256bit
.RGB_PIXEL_CNT(8) // RGB模式拼接像素数8x32bit=256bit
) u_data_assemble (
.clk(clk),
.rst_n(rst_n_sys),
.en(assemble_en),
.input_pixel_type(input_pixel_type),
.ir_ch0(ir_ch0_sys),
.ir_ch1(ir_ch1_sys),
.ir_ch2(ir_ch2_sys),
.pixel_valid(async_fifo_rd_data[26]),
.done(assemble_done),
.assembled_data(assemble_data)
);
// 5. 同步FIFO缓存拼接后的256bit数据适配AXI写速度
sync_fifo #(
.FIFO_DEPTH(SYNC_FIFO_DEPTH),
.DATA_WIDTH(SYNC_FIFO_DATA_W)
) u_sync_fifo (
.clk(clk),
.rst_n(rst_n_sys),
.wr_en(sync_fifo_wr_en),
.wr_data(sync_fifo_wr_data),
.full(sync_fifo_full),
.rd_en(sync_fifo_rd_en),
.rd_data(sync_fifo_rd_data),
.empty(sync_fifo_empty)
);
// 6. AXI写控制模块从同步FIFO读数据发起AXI写事务
axi_write_ctrl #(
.AXI_ID_W(AXI_ID_W),
.AXI_ADDR_W(AXI_ADDR_W),
.AXI_DATA_W(AXI_DATA_W),
.AXI_STRB_W(AXI_STRB_W)
) u_axi_write_ctrl (
.clk(clk),
.rst_n(rst_n_sys),
.start_en(!sync_fifo_empty && !axi_write_busy), // FIFO非空且AXI空闲时启动
.sram_base_addr(32'h0000_0000), // SRAM基地址可配置
.fifo_rd_data(sync_fifo_rd_data),
.fifo_empty(sync_fifo_empty),
.fifo_rd_en(sync_fifo_rd_en),
.axi_m_awid(axi_m_awid),
.axi_m_awaddr(axi_m_awaddr),
.axi_m_awlen(axi_m_awlen),
.axi_m_awsize(axi_m_awsize),
.axi_m_awburst(axi_m_awburst),
.axi_m_awlock(axi_m_awlock),
.axi_m_awcache(axi_m_awcache),
.axi_m_awprot(axi_m_awprot),
.axi_m_awqos(axi_m_awqos),
.axi_m_awvalid(axi_m_awvalid),
.axi_m_awready(axi_m_awready),
.axi_m_wid(axi_m_wid),
.axi_m_wdata(axi_m_wdata),
.axi_m_wstrb(axi_m_wstrb),
.axi_m_wlast(axi_m_wlast),
.axi_m_wvalid(axi_m_wvalid),
.axi_m_wready(axi_m_wready),
.axi_m_bid(axi_m_bid),
.axi_m_bresp(axi_m_bresp),
.axi_m_bvalid(axi_m_bvalid),
.axi_m_bready(axi_m_bready),
.axi_busy(axi_write_busy),
.axi_done(axi_write_done)
);
// -------------------------- 核心逻辑实现 --------------------------
// assign flag = (col_cnt == src_pixel_width-1'd1);
assign axi_write_done = (axi_m_bvalid && axi_m_bready);
// 1. 异步FIFO写控制IR时钟域
assign async_fifo_wr_data = {ir_valid, ir_vs, ir_hs, ir_ch2, ir_ch1, ir_ch0};
assign async_fifo_wr_en = ir_valid && !async_fifo_full && ipa_en; // 像素有效且FIFO未满
// 2. 异步FIFO读控制系统时钟域
assign async_fifo_rd_en = !async_fifo_empty &&
(curr_state == S_WAIT_VS || frame_active) && !flag; // 帧活跃且FIFO非空
// 3. 跨域后信号解析系统时钟域
assign ir_valid_sys = async_fifo_rd_data[26] && !flag; // [26] = ir_valid
assign ir_vs_sys = async_fifo_rd_data[25]; // [25] = ir_vs
assign ir_hs_sys = async_fifo_rd_data[24]; // [24] = ir_hs
assign ir_ch2_sys = async_fifo_rd_data[23:16];// [23:16] = ir_ch2
assign ir_ch1_sys = async_fifo_rd_data[15:8]; // [15:8] = ir_ch1
assign ir_ch0_sys = async_fifo_rd_data[7:0]; // [7:0] = ir_ch0
// 4. 直方图写控制系统时钟域
assign hist_rst = update_src_trig || ir_vs_sys; // 更新触发或帧起始时复位直方图
assign hist_wr_en_ch0 = ir_valid_sys && frame_active; // CH0始终写Gray/RGB均有效
assign hist_wr_addr_ch0 = ir_ch0_sys;
assign hist_wr_en_ch1 = ir_valid_sys && frame_active && (input_pixel_type == 1'b1); // RGB时写CH1
assign hist_wr_addr_ch1 = ir_ch1_sys;
assign hist_wr_en_ch2 = ir_valid_sys && frame_active && (input_pixel_type == 1'b1); // RGB时写CH2
assign hist_wr_addr_ch2 = ir_ch2_sys;
//assign hist_calc_en = (row_cnt == src_pixel_height-1'd1) && (col_cnt == src_pixel_width-1'd1); // 帧结束后计算min/max
// 5. 数据拼接使能控制
assign assemble_en = frame_active && ir_valid_sys && !ir_vs_sys;
// 6. 同步FIFO写控制
assign sync_fifo_wr_en = assemble_done && !sync_fifo_full;
assign sync_fifo_wr_data = assemble_data;
// 7. 帧计数逻辑 - 修复frame_active激活关键不依赖frame_active读FIFO
always @(posedge clk or negedge rst_n_sys) begin
if (!rst_n_sys) begin
col_cnt <= 16'd0;
row_cnt <= 16'd0;
frame_active <= 1'b0;
end else if (update_src_trig) begin
col_cnt <= 16'd0;
row_cnt <= 16'd0;
frame_active <= 1'b0;
end else if (ir_vs_sys && curr_state == S_WAIT_VS) begin
// WAIT_VS状态下ir_vs_sys=1 激活frame_active
col_cnt <= 16'd0;
row_cnt <= 16'd0;
frame_active <= 1'b1;
end else if (curr_state == S_RECEIVE_DATA) begin
// RECEIVE_DATA状态下保持frame_active=1直到帧结束
frame_active <= 1'b1;
if (ir_valid_sys && !ir_vs_sys) begin
col_cnt <= col_cnt + 16'd1;
if (col_cnt == src_pixel_width - 16'd1) begin
col_cnt <= 16'd0;
row_cnt <= row_cnt + 16'd1;
if (row_cnt == src_pixel_height - 16'd1) begin
frame_active <= 1'b0;
end
end
end
end else begin
frame_active <= 1'b0;
end
end
// 8. 状态机时序逻辑
always @(posedge clk or negedge rst_n_sys) begin
if (!rst_n_sys) begin
curr_state <= S_IDLE;
end else begin
curr_state <= next_state;
end
end
// 9. 状态机组合逻辑状态转移
always @(*) begin
next_state = curr_state;
case (curr_state)
S_IDLE: begin
// 等待IPA使能
if (ipa_en && !update_src_trig) begin
next_state = S_WAIT_VS;
end
end
S_WAIT_VS: begin
// 等待帧起始IR_VS
if (ir_vs_sys) begin
next_state = S_RECEIVE_DATA;
end else if (update_src_trig) begin
next_state = S_IDLE;
end
end
S_RECEIVE_DATA: begin
// 接收数据:直到帧结束(行/列计数满)
if ((row_cnt == src_pixel_height-1'd1) && (col_cnt == src_pixel_width-1'd1)) begin
next_state = S_WRITE_FIFO;
end else if (update_src_trig) begin
next_state = S_IDLE;
end
end
S_WRITE_FIFO: begin
// 条件1同步FIFO已空数据已全部读出到AXI控制器但AXI仍在忙碌 → 等待AXI完成
if (sync_fifo_empty && axi_write_busy) begin
next_state = S_WAIT_AXI;
end
// 条件2同步FIFO已空且AXI已完成所有写操作 → 直接进入帧完成
else if (sync_fifo_empty && !axi_write_busy) begin
next_state = S_FRAME_DONE;
end
// 条件3收到更新触发 → 强制回到IDLE
else if (update_src_trig) begin
next_state = S_IDLE;
end
end
S_WAIT_AXI: begin
// AXI写完成后进入帧完成状态
if (axi_write_done) begin
next_state = S_FRAME_DONE;
end
// 收到更新触发 → 强制回到IDLE
else if (update_src_trig) begin
next_state = S_IDLE;
end
end
S_FRAME_DONE: begin
// 帧完成保持1拍后回到等待VS支持连续帧
if (src_image_cache_done) begin
next_state = S_WAIT_VS;
end else begin
next_state = S_FRAME_DONE;
end
end
endcase
end
// 10. 状态机输出逻辑(控制各模块行为)
always @(posedge clk or negedge rst_n_sys) begin
if (!rst_n_sys) begin
src_image_cache_done <= 1'b0;
end else begin
src_image_cache_done <= 1'b0;
case (curr_state)
S_FRAME_DONE: begin
// 帧完成:置位缓存完成信号,并等待直方图计算完成
src_image_cache_done <= hist_calc_done;
end
default: begin
src_image_cache_done <= 1'b0;
end
endcase
end
end
always @(posedge clk or negedge rst_n_sys) begin
if (!rst_n_sys) begin
hist_calc_en <= 'd0;
end else begin
hist_calc_en <= (row_cnt == src_pixel_height-1'd1) && (col_cnt == src_pixel_width-1'd1);
end
end
// always @(posedge clk or negedge rst_n_sys) begin
// if (!rst_n_sys) begin
// assemble_en <= 'd0;
// end else begin
// assemble_en <= frame_active && ir_valid_sys && !ir_vs_sys;
// end
// end
reg [1:0] flag_cnt;
always @(posedge clk or negedge rst_n_sys) begin
if (!rst_n_sys) begin
flag <= 'd0;
flag_cnt <='d0;
end else if (flag == 1'b1)begin
flag_cnt <= flag_cnt + 1'b1;
if (flag_cnt == 2'd2) begin
flag <= 'd0;
flag_cnt <='d0;
end
end else if (col_cnt == src_pixel_width-1'd1) begin
flag <= 1'b1;
end
end
endmodule

View File

@@ -0,0 +1,231 @@
module histogram_ctrl #(
parameter HIST_RAM_DEPTH = 256,
parameter HIST_RAM_DATA_W = 1
) (
input wire clk,
input wire rst_n,
input wire hist_rst, // 直方图复位
input wire input_pixel_type, // 0=Gray1=RGB
input wire hist_wr_en_ch0, // CH0写使能
input wire [7:0] hist_wr_addr_ch0, // CH0写地址像素值0~255
input wire hist_wr_en_ch1, // CH1写使能
input wire [7:0] hist_wr_addr_ch1, // CH1写地址
input wire hist_wr_en_ch2, // CH2写使能
input wire [7:0] hist_wr_addr_ch2, // CH2写地址
input wire [15:0] histogram_low_num, // 低位数计算min
input wire [15:0] histogram_high_num,// 高位数计算max
input wire calc_en, // 计算使能
output reg calc_done, // 计算完成
output reg [7:0] dwidth_conv_min_ch0,
output reg [7:0] dwidth_conv_max_ch0,
output reg [7:0] dwidth_conv_min_ch1,
output reg [7:0] dwidth_conv_max_ch1,
output reg [7:0] dwidth_conv_min_ch2,
output reg [7:0] dwidth_conv_max_ch2
);
// 内部信号
reg [HIST_RAM_DATA_W-1:0] hist_ram_ch0 [HIST_RAM_DEPTH-1:0]; // CH0直方图RAM
reg [HIST_RAM_DATA_W-1:0] hist_ram_ch1 [HIST_RAM_DEPTH-1:0]; // CH1直方图RAM
reg [HIST_RAM_DATA_W-1:0] hist_ram_ch2 [HIST_RAM_DEPTH-1:0]; // CH2直方图RAM
reg [7:0] calc_addr; // 遍历地址0~255
reg [15:0] low_cnt_ch0; // CH0低位数计数器
reg [15:0] high_cnt_ch0; // CH0高位数计数器
reg [15:0] low_cnt_ch1; // CH1低位数计数器
reg [15:0] high_cnt_ch1; // CH1高位数计数器
reg [15:0] low_cnt_ch2; // CH2低位数计数器
reg [15:0] high_cnt_ch2; // CH2高位数计数器
reg calc_active; // 计算活跃标记
// 状态定义
localparam [1:0] S_HIST_IDLE = 2'b00;
localparam [1:0] S_HIST_CLEAR = 2'b01;
localparam [1:0] S_HIST_WRITE = 2'b10;
localparam [1:0] S_HIST_CALC = 2'b11;
reg [1:0] curr_hist_state;
reg [1:0] next_hist_state;
// 1. 状态机时序逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
curr_hist_state <= S_HIST_IDLE;
end else begin
curr_hist_state <= next_hist_state;
end
end
// 2. 状态机组合逻辑
always @(*) begin
next_hist_state = curr_hist_state;
case (curr_hist_state)
S_HIST_IDLE: begin
if (hist_rst) begin
next_hist_state = S_HIST_CLEAR;
end else if (hist_wr_en_ch0 || hist_wr_en_ch1 || hist_wr_en_ch2) begin
next_hist_state = S_HIST_WRITE;
end else if (calc_en) begin
next_hist_state = S_HIST_CALC;
end
end
S_HIST_CLEAR: begin
if (calc_addr == HIST_RAM_DEPTH - 1) begin
next_hist_state = S_HIST_IDLE;
end
end
S_HIST_WRITE: begin
if (hist_rst) begin
next_hist_state = S_HIST_CLEAR;
end else if (calc_en) begin
next_hist_state = S_HIST_CALC;
end
end
S_HIST_CALC: begin
if (calc_addr == HIST_RAM_DEPTH - 1) begin
next_hist_state = S_HIST_IDLE;
end
end
endcase
end
// 3. 直方图RAM复位/写逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
// 复位所有RAM
integer i;
for (i = 0; i < HIST_RAM_DEPTH; i = i+1) begin
hist_ram_ch0[i] <= 1'b0;
hist_ram_ch1[i] <= 1'b0;
hist_ram_ch2[i] <= 1'b0;
end
calc_addr <= 8'd0;
end else begin
case (curr_hist_state)
S_HIST_CLEAR: begin
// 清空RAM地址递增
hist_ram_ch0[calc_addr] <= 1'b0;
hist_ram_ch1[calc_addr] <= 1'b0;
hist_ram_ch2[calc_addr] <= 1'b0;
calc_addr <= calc_addr + 8'd1;
end
S_HIST_WRITE: begin
// CH0写始终有效
if (hist_wr_en_ch0) begin
hist_ram_ch0[hist_wr_addr_ch0] <= 1'b1; // 标记像素值存在
end
// CH1/CH2写仅RGB模式有效
if (hist_wr_en_ch1 && (input_pixel_type == 1'b1)) begin
hist_ram_ch1[hist_wr_addr_ch1] <= 1'b1;
end
if (hist_wr_en_ch2 && (input_pixel_type == 1'b1)) begin
hist_ram_ch2[hist_wr_addr_ch2] <= 1'b1;
end
calc_addr <= 8'd0;
end
S_HIST_CALC: begin
// 遍历地址递增
calc_addr <= calc_addr + 8'd1;
end
default: begin
calc_addr <= 8'd0;
end
endcase
end
end
// 4. 修复后的直方图min/max计算逻辑关键修复点
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
low_cnt_ch0 <= 16'd0;
high_cnt_ch0 <= 16'd0;
low_cnt_ch1 <= 16'd0;
high_cnt_ch1 <= 16'd0;
low_cnt_ch2 <= 16'd0;
high_cnt_ch2 <= 16'd0;
dwidth_conv_min_ch0 <= 8'd0;
dwidth_conv_max_ch0 <= 8'd255;
dwidth_conv_min_ch1 <= 8'd0;
dwidth_conv_max_ch1 <= 8'd255;
dwidth_conv_min_ch2 <= 8'd0;
dwidth_conv_max_ch2 <= 8'd255;
calc_done <= 1'b0;
calc_active <= 1'b0;
end else begin
calc_done <= 1'b0;
case (curr_hist_state)
S_HIST_CALC: begin
calc_active <= 1'b1;
// -------------------------- 关键修复1计算开始时强制清零计数器 --------------------------
if (calc_addr == 8'd0) begin // 遍历地址为0时计算起始清零所有计数器
low_cnt_ch0 <= 16'd0;
high_cnt_ch0 <= 16'd0;
low_cnt_ch1 <= 16'd0;
high_cnt_ch1 <= 16'd0;
low_cnt_ch2 <= 16'd0;
high_cnt_ch2 <= 16'd0;
end
// -------------------------- CH0计算 --------------------------
// min0→255遍历找第histogram_low_num个1
if (low_cnt_ch0 < histogram_low_num && hist_ram_ch0[calc_addr] == 1'b1) begin
low_cnt_ch0 <= low_cnt_ch0 + 16'd1;
if (low_cnt_ch0 == histogram_low_num - 16'd1) begin
dwidth_conv_min_ch0 <= calc_addr;
end
end
// max255→0遍历找第histogram_high_num个1
if (high_cnt_ch0 < histogram_high_num && hist_ram_ch0[255 - calc_addr] == 1'b1) begin
high_cnt_ch0 <= high_cnt_ch0 + 16'd1;
if (high_cnt_ch0 == histogram_high_num - 16'd1) begin
dwidth_conv_max_ch0 <= 255 - calc_addr;
end
end
// -------------------------- CH1计算仅RGB模式 --------------------------
if (input_pixel_type == 1'b1) begin
if (low_cnt_ch1 < histogram_low_num && hist_ram_ch1[calc_addr] == 1'b1) begin
low_cnt_ch1 <= low_cnt_ch1 + 16'd1;
if (low_cnt_ch1 == histogram_low_num - 16'd1) begin
dwidth_conv_min_ch1 <= calc_addr;
end
end
if (high_cnt_ch1 < histogram_high_num && hist_ram_ch1[255 - calc_addr] == 1'b1) begin
high_cnt_ch1 <= high_cnt_ch1 + 16'd1;
if (high_cnt_ch1 == histogram_high_num - 16'd1) begin
dwidth_conv_max_ch1 <= 255 - calc_addr;
end
end
end
// -------------------------- CH2计算仅RGB模式 --------------------------
if (input_pixel_type == 1'b1) begin
if (low_cnt_ch2 < histogram_low_num && hist_ram_ch2[calc_addr] == 1'b1) begin
low_cnt_ch2 <= low_cnt_ch2 + 16'd1;
if (low_cnt_ch2 == histogram_low_num - 16'd1) begin
dwidth_conv_min_ch2 <= calc_addr;
end
end
if (high_cnt_ch2 < histogram_high_num && hist_ram_ch2[255 - calc_addr] == 1'b1) begin
high_cnt_ch2 <= high_cnt_ch2 + 16'd1;
if (high_cnt_ch2 == histogram_high_num - 16'd1) begin
dwidth_conv_max_ch2 <= 255 - calc_addr;
end
end
end
// -------------------------- 遍历结束:置位完成信号 --------------------------
if (calc_addr == HIST_RAM_DEPTH - 1) begin
calc_done <= 1'b1;
calc_active <= 1'b0;
end
end
default: begin
calc_active <= 1'b0;
calc_done <= 1'b0;
end
endcase
end
end
endmodule

27
rtl/data_cache/rst_sync.v Normal file
View File

@@ -0,0 +1,27 @@
module rst_sync #(
parameter SYNC_STAGE = 2 // 同步级数推荐2级
) (
input wire clk,
input wire rst_n_in,
output reg rst_n_out
);
reg [SYNC_STAGE-1:0] rst_sync_reg;
always @(posedge clk or negedge rst_n_in) begin
if (!rst_n_in) begin
rst_sync_reg <= {SYNC_STAGE{1'b0}};
end else begin
rst_sync_reg <= {rst_sync_reg[SYNC_STAGE-2:0], 1'b1};
end
end
always @(posedge clk or negedge rst_n_in) begin
if (!rst_n_in) begin
rst_n_out <= 1'b0;
end else begin
rst_n_out <= rst_sync_reg[SYNC_STAGE-1];
end
end
endmodule

View File

@@ -0,0 +1,73 @@
module sync_fifo #(
parameter DATA_WIDTH = 8,
parameter FIFO_DEPTH = 16
)(
input clk,
input rst_n,
input wr_en,
input [DATA_WIDTH-1:0] wr_data,
output full,
input rd_en,
output [DATA_WIDTH-1:0] rd_data,
output empty
);
localparam ADDR_WIDTH = $clog2(FIFO_DEPTH);
reg [DATA_WIDTH-1:0] mem [0 : FIFO_DEPTH -1];
reg [ADDR_WIDTH : 0] wr_ptr, rd_ptr;
wire [ADDR_WIDTH -1:0] wr_addr ,rd_addr;
assign wr_addr = wr_ptr[ADDR_WIDTH -1:0];
assign rd_addr = rd_ptr[ADDR_WIDTH -1:0];
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin
wr_ptr <= 'd0;
end else if(wr_en && !full) begin
wr_ptr <= wr_ptr + 1'b1;
end else begin
wr_ptr <= wr_ptr;
end
end
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin
rd_ptr <= 'd0;
end else if(rd_en && !empty) begin
rd_ptr <= rd_ptr + 1'b1;
end else begin
rd_ptr <= rd_ptr;
end
end
integer i;
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin
for(i=0;i<FIFO_DEPTH;i=i+1) begin
mem[i] <= 'd0;
end
end else if(wr_en && !full) begin
mem[wr_addr] <= wr_data;
end else begin
mem[wr_addr] <= mem[wr_addr];
end
end
// always@(posedge clk or negedge rst_n) begin
// if(!rst_n) begin
// rd_data <= 'd0;
// end else if(rd_en && !empty) begin
// rd_data <= mem[rd_addr];
// end else begin
// rd_data <= rd_data;
// end
// end
assign rd_data = mem[rd_addr];
assign full = ((wr_ptr[ADDR_WIDTH] != rd_ptr[ADDR_WIDTH]) &&
(wr_ptr[ADDR_WIDTH -1:0] == rd_ptr[ADDR_WIDTH -1:0])) ? 1:0;
assign empty = (wr_ptr == rd_ptr) ? 1:0;
endmodule

20
sim/Makefile Executable file
View File

@@ -0,0 +1,20 @@
find :
find ../rtl -name "*.v" >>rtl.f
find ../tb -name "*.v" >>tb.f
#-------------------------------------------------------------------------------------------------------
comp : clean vcs
#-------------------------------------------------------------------------------------------------------
vcs :
vcs \
-f rtl.f \
-f tb.f \
-timescale=1ns/1ps \
-full64 -R +vc +v2k -sverilog -debug_access+all\
| tee vcs.log
#-------------------------------------------------------------------------------------------------------
verdi :
verdi -f rtl.f tb.f -ssf tb.fsdb &
#-------------------------------------------------------------------------------------------------------
clean :
rm -rf *~ *.f core csrc simv* vc_hdrs.h ucli.key urg* *.log novas.* *.fsdb* verdiLog 64* DVEfiles *.vpd
#-------------------------------------------------------------------------------------------------------

116
sim/csrc/Makefile Normal file
View File

@@ -0,0 +1,116 @@
# Makefile generated by VCS to build your model
# This file may be modified; VCS will not overwrite it unless -Mupdate is used
# define default verilog source directory
VSRC=..
# Override TARGET_ARCH
TARGET_ARCH=
# Choose name of executable
PRODUCTBASE=$(VSRC)/simv
PRODUCT=$(PRODUCTBASE)
# Product timestamp file. If product is newer than this one,
# we will also re-link the product.
PRODUCT_TIMESTAMP=product_timestamp
# Path to runtime library
DEPLIBS=
VCSUCLI=-lvcsucli
RUNTIME=-lvcsnew -lsimprofile -luclinative /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcs_tls.o $(DEPLIBS)
VCS_SAVE_RESTORE_OBJ=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcs_save_restore_new.o
# Select your favorite compiler
# Linux:
VCS_CC=gcc
# Internal CC for gen_c flow:
CC_CG=gcc
# User overrode default CC:
VCS_CC=gcc
# Loader
LD=g++
# Strip Flags for target product
STRIPFLAGS=
PRE_LDFLAGS= # Loader Flags
LDFLAGS= -rdynamic -Wl,-rpath=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib -L/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib
# Picarchive Flags
PICLDFLAGS=-Wl,-rpath-link=./ -Wl,-rpath='$$ORIGIN'/simv.daidir/ -Wl,-rpath=./simv.daidir/ -Wl,-rpath='$$ORIGIN'/simv.daidir//scsim.db.dir
# C run time startup
CRT0=
# C run time startup
CRTN=
# Machine specific libraries
SYSLIBS=/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/pli.a -ldl -lc -lm -lpthread -ldl
# Default defines
SHELL=/bin/sh
VCSTMPSPECARG=
VCSTMPSPECENV=
# NOTE: if you have little space in $TMPDIR, but plenty in /foo,
#and you are using gcc, uncomment the next line
#VCSTMPSPECENV=SNPS_VCS_TMPDIR=/foo
TMPSPECARG=$(VCSTMPSPECARG)
TMPSPECENV=$(VCSTMPSPECENV)
CC=$(TMPSPECENV) $(VCS_CC) $(TMPSPECARG)
# C flags for compilation
CFLAGS=-w -pipe -fPIC -O -I/home/synopsys/vcs-mx/O-2018.09-1/include
CFLAGS_O0=-w -pipe -fPIC -I/home/synopsys/vcs-mx/O-2018.09-1/include -O0 -fno-strict-aliasing
CFLAGS_CG=-w -pipe -fPIC -I/home/synopsys/vcs-mx/O-2018.09-1/include -O -fno-strict-aliasing
LD_PARTIAL_LOADER=ld
# Partial linking
LD_PARTIAL=$(LD_PARTIAL_LOADER) -r -o
ASFLAGS=
LIBS=-lzerosoft_rt_stubs -lvirsim -lerrorinf -lsnpsmalloc -lvfs
# Note: if make gives you errors about include, either get gmake, or
# replace the following line with the contents of the file filelist,
# EACH TIME IT CHANGES
# included file defines OBJS, and is automatically generated by vcs
include filelist
OBJS=$(VLOG_OBJS) $(SYSC_OBJS) $(VHDL_OBJS)
product : $(PRODUCT_TIMESTAMP)
@echo $(PRODUCT) up to date
objects : $(OBJS) $(DPI_STUB_OBJS) $(PLI_STUB_OBJS)
clean :
rm -f $(VCS_OBJS) $(CU_OBJS)
clobber : clean
rm -f $(PRODUCT) $(PRODUCT_TIMESTAMP)
picclean :
rm -f _csrc*.so pre_vcsobj_*.so share_vcsobj_*.so
@rm -f $(PRODUCT).daidir/_[0-9]*_archive_*.so 2>/dev/null
product_clean_order :
@$(MAKE) -f Makefile --no-print-directory picclean
@$(MAKE) -f Makefile --no-print-directory product_order
product_order : $(PRODUCT)
$(PRODUCT_TIMESTAMP) : product_clean_order
-if [ -x $(PRODUCT) ]; then chmod -x $(PRODUCT); fi
$(LD) $(CRT0) -o $(PRODUCT) $(PRE_LDFLAGS) $(STRIPFLAGS) $(PCLDFLAGS) $(PICLDFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) $(RUNTIME) -Wl,-whole-archive $(VCSUCLI) -Wl,-no-whole-archive $(LINK_TB) $(DPI_STUB_OBJS) $(PLI_STUB_OBJS) $(VCS_SAVE_RESTORE_OBJ) $(SYSLIBS) $(CRTN)
@rm -f csrc[0-9]*.o
@touch $(PRODUCT_TIMESTAMP)
@-if [ -d ./objs ]; then find ./objs -type d -empty -delete; fi
$(PRODUCT) : $(LD_VERSION_CHECK) $(OBJS) $(DOTLIBS) $(DPI_STUB_OBJS) $(PLI_STUB_OBJS) $(CMODLIB) /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvcsnew.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libsimprofile.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libuclinative.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcs_tls.o /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvcsucli.so $(VCS_SAVE_RESTORE_OBJ)
@touch $(PRODUCT)

47
sim/csrc/Makefile.hsopt Normal file
View File

@@ -0,0 +1,47 @@
# Makefile generated by VCS to build rmapats.so for your model
VSRC=..
# Override TARGET_ARCH
TARGET_ARCH=
# Select your favorite compiler
# Linux:
VCS_CC=gcc
# Internal CC for gen_c flow:
CC_CG=gcc
# User overrode default CC:
VCS_CC=gcc
# Loader
LD=g++
# Loader Flags
LDFLAGS=
# Default defines
SHELL=/bin/sh
VCSTMPSPECARG=
VCSTMPSPECENV=
# NOTE: if you have little space in $TMPDIR, but plenty in /foo,
#and you are using gcc, uncomment the next line
#VCSTMPSPECENV=SNPS_VCS_TMPDIR=/foo
TMPSPECARG=$(VCSTMPSPECARG)
TMPSPECENV=$(VCSTMPSPECENV)
CC=$(TMPSPECENV) $(VCS_CC) $(TMPSPECARG)
# C flags for compilation
CFLAGS=-w -pipe -fPIC -O -I/home/synopsys/vcs-mx/O-2018.09-1/include
CFLAGS_CG=-w -pipe -fPIC -I/home/synopsys/vcs-mx/O-2018.09-1/include -O -fno-strict-aliasing
ASFLAGS=
LIBS=
include filelist.hsopt
rmapats.so: $(HSOPT_OBJS)
@$(VCS_CC) $(LDFLAGS) $(LIBS) -shared -o ./../simv.daidir/rmapats.so $(HSOPT_OBJS)

BIN
sim/csrc/SIM_l.o Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
.//../simv.daidir//_16331_archive_1.so

964
sim/csrc/_vcs_pli_stub_.c Normal file
View File

@@ -0,0 +1,964 @@
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <stdio.h>
#include <dlfcn.h>
#ifdef __cplusplus
extern "C" {
#endif
extern void* VCS_dlsymLookup(const char *);
extern void vcsMsgReportNoSource1(const char *, const char*);
/* PLI routine: $fsdbDumpvars:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpvars
#define __VCS_PLI_STUB_novas_call_fsdbDumpvars
extern void novas_call_fsdbDumpvars(int data, int reason);
#pragma weak novas_call_fsdbDumpvars
void novas_call_fsdbDumpvars(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpvars");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpvars");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpvars");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpvars)(int data, int reason) = novas_call_fsdbDumpvars;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpvars */
/* PLI routine: $fsdbDumpvars:misc */
#ifndef __VCS_PLI_STUB_novas_misc
#define __VCS_PLI_STUB_novas_misc
extern void novas_misc(int data, int reason, int iparam );
#pragma weak novas_misc
void novas_misc(int data, int reason, int iparam )
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason, int iparam ) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason, int iparam )) dlsym(RTLD_NEXT, "novas_misc");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason, int iparam )) VCS_dlsymLookup("novas_misc");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason, iparam );
}
}
void (*__vcs_pli_dummy_reference_novas_misc)(int data, int reason, int iparam ) = novas_misc;
#endif /* __VCS_PLI_STUB_novas_misc */
/* PLI routine: $fsdbDumpvarsByFile:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpvarsByFile
#define __VCS_PLI_STUB_novas_call_fsdbDumpvarsByFile
extern void novas_call_fsdbDumpvarsByFile(int data, int reason);
#pragma weak novas_call_fsdbDumpvarsByFile
void novas_call_fsdbDumpvarsByFile(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpvarsByFile");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpvarsByFile");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpvarsByFile");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpvarsByFile)(int data, int reason) = novas_call_fsdbDumpvarsByFile;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpvarsByFile */
/* PLI routine: $fsdbAddRuntimeSignal:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbAddRuntimeSignal
#define __VCS_PLI_STUB_novas_call_fsdbAddRuntimeSignal
extern void novas_call_fsdbAddRuntimeSignal(int data, int reason);
#pragma weak novas_call_fsdbAddRuntimeSignal
void novas_call_fsdbAddRuntimeSignal(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbAddRuntimeSignal");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbAddRuntimeSignal");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbAddRuntimeSignal");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbAddRuntimeSignal)(int data, int reason) = novas_call_fsdbAddRuntimeSignal;
#endif /* __VCS_PLI_STUB_novas_call_fsdbAddRuntimeSignal */
/* PLI routine: $sps_create_transaction_stream:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_create_transaction_stream
#define __VCS_PLI_STUB_novas_call_sps_create_transaction_stream
extern void novas_call_sps_create_transaction_stream(int data, int reason);
#pragma weak novas_call_sps_create_transaction_stream
void novas_call_sps_create_transaction_stream(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_create_transaction_stream");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_create_transaction_stream");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_create_transaction_stream");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_create_transaction_stream)(int data, int reason) = novas_call_sps_create_transaction_stream;
#endif /* __VCS_PLI_STUB_novas_call_sps_create_transaction_stream */
/* PLI routine: $sps_begin_transaction:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_begin_transaction
#define __VCS_PLI_STUB_novas_call_sps_begin_transaction
extern void novas_call_sps_begin_transaction(int data, int reason);
#pragma weak novas_call_sps_begin_transaction
void novas_call_sps_begin_transaction(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_begin_transaction");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_begin_transaction");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_begin_transaction");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_begin_transaction)(int data, int reason) = novas_call_sps_begin_transaction;
#endif /* __VCS_PLI_STUB_novas_call_sps_begin_transaction */
/* PLI routine: $sps_end_transaction:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_end_transaction
#define __VCS_PLI_STUB_novas_call_sps_end_transaction
extern void novas_call_sps_end_transaction(int data, int reason);
#pragma weak novas_call_sps_end_transaction
void novas_call_sps_end_transaction(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_end_transaction");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_end_transaction");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_end_transaction");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_end_transaction)(int data, int reason) = novas_call_sps_end_transaction;
#endif /* __VCS_PLI_STUB_novas_call_sps_end_transaction */
/* PLI routine: $sps_free_transaction:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_free_transaction
#define __VCS_PLI_STUB_novas_call_sps_free_transaction
extern void novas_call_sps_free_transaction(int data, int reason);
#pragma weak novas_call_sps_free_transaction
void novas_call_sps_free_transaction(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_free_transaction");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_free_transaction");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_free_transaction");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_free_transaction)(int data, int reason) = novas_call_sps_free_transaction;
#endif /* __VCS_PLI_STUB_novas_call_sps_free_transaction */
/* PLI routine: $sps_add_attribute:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_add_attribute
#define __VCS_PLI_STUB_novas_call_sps_add_attribute
extern void novas_call_sps_add_attribute(int data, int reason);
#pragma weak novas_call_sps_add_attribute
void novas_call_sps_add_attribute(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_add_attribute");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_add_attribute");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_add_attribute");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_add_attribute)(int data, int reason) = novas_call_sps_add_attribute;
#endif /* __VCS_PLI_STUB_novas_call_sps_add_attribute */
/* PLI routine: $sps_update_label:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_update_label
#define __VCS_PLI_STUB_novas_call_sps_update_label
extern void novas_call_sps_update_label(int data, int reason);
#pragma weak novas_call_sps_update_label
void novas_call_sps_update_label(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_update_label");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_update_label");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_update_label");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_update_label)(int data, int reason) = novas_call_sps_update_label;
#endif /* __VCS_PLI_STUB_novas_call_sps_update_label */
/* PLI routine: $sps_add_relation:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_add_relation
#define __VCS_PLI_STUB_novas_call_sps_add_relation
extern void novas_call_sps_add_relation(int data, int reason);
#pragma weak novas_call_sps_add_relation
void novas_call_sps_add_relation(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_add_relation");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_add_relation");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_add_relation");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_add_relation)(int data, int reason) = novas_call_sps_add_relation;
#endif /* __VCS_PLI_STUB_novas_call_sps_add_relation */
/* PLI routine: $fsdbWhatif:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbWhatif
#define __VCS_PLI_STUB_novas_call_fsdbWhatif
extern void novas_call_fsdbWhatif(int data, int reason);
#pragma weak novas_call_fsdbWhatif
void novas_call_fsdbWhatif(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbWhatif");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbWhatif");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbWhatif");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbWhatif)(int data, int reason) = novas_call_fsdbWhatif;
#endif /* __VCS_PLI_STUB_novas_call_fsdbWhatif */
/* PLI routine: $paa_init:call */
#ifndef __VCS_PLI_STUB_novas_call_paa_init
#define __VCS_PLI_STUB_novas_call_paa_init
extern void novas_call_paa_init(int data, int reason);
#pragma weak novas_call_paa_init
void novas_call_paa_init(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_paa_init");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_paa_init");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_paa_init");
}
}
void (*__vcs_pli_dummy_reference_novas_call_paa_init)(int data, int reason) = novas_call_paa_init;
#endif /* __VCS_PLI_STUB_novas_call_paa_init */
/* PLI routine: $paa_sync:call */
#ifndef __VCS_PLI_STUB_novas_call_paa_sync
#define __VCS_PLI_STUB_novas_call_paa_sync
extern void novas_call_paa_sync(int data, int reason);
#pragma weak novas_call_paa_sync
void novas_call_paa_sync(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_paa_sync");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_paa_sync");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_paa_sync");
}
}
void (*__vcs_pli_dummy_reference_novas_call_paa_sync)(int data, int reason) = novas_call_paa_sync;
#endif /* __VCS_PLI_STUB_novas_call_paa_sync */
/* PLI routine: $fsdbDumpClassMethod:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpClassMethod
#define __VCS_PLI_STUB_novas_call_fsdbDumpClassMethod
extern void novas_call_fsdbDumpClassMethod(int data, int reason);
#pragma weak novas_call_fsdbDumpClassMethod
void novas_call_fsdbDumpClassMethod(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpClassMethod");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpClassMethod");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpClassMethod");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpClassMethod)(int data, int reason) = novas_call_fsdbDumpClassMethod;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpClassMethod */
/* PLI routine: $fsdbSuppressClassMethod:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbSuppressClassMethod
#define __VCS_PLI_STUB_novas_call_fsdbSuppressClassMethod
extern void novas_call_fsdbSuppressClassMethod(int data, int reason);
#pragma weak novas_call_fsdbSuppressClassMethod
void novas_call_fsdbSuppressClassMethod(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbSuppressClassMethod");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbSuppressClassMethod");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbSuppressClassMethod");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbSuppressClassMethod)(int data, int reason) = novas_call_fsdbSuppressClassMethod;
#endif /* __VCS_PLI_STUB_novas_call_fsdbSuppressClassMethod */
/* PLI routine: $fsdbSuppressClassProp:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbSuppressClassProp
#define __VCS_PLI_STUB_novas_call_fsdbSuppressClassProp
extern void novas_call_fsdbSuppressClassProp(int data, int reason);
#pragma weak novas_call_fsdbSuppressClassProp
void novas_call_fsdbSuppressClassProp(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbSuppressClassProp");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbSuppressClassProp");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbSuppressClassProp");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbSuppressClassProp)(int data, int reason) = novas_call_fsdbSuppressClassProp;
#endif /* __VCS_PLI_STUB_novas_call_fsdbSuppressClassProp */
/* PLI routine: $fsdbDumpMDAByFile:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpMDAByFile
#define __VCS_PLI_STUB_novas_call_fsdbDumpMDAByFile
extern void novas_call_fsdbDumpMDAByFile(int data, int reason);
#pragma weak novas_call_fsdbDumpMDAByFile
void novas_call_fsdbDumpMDAByFile(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpMDAByFile");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpMDAByFile");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpMDAByFile");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpMDAByFile)(int data, int reason) = novas_call_fsdbDumpMDAByFile;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpMDAByFile */
/* PLI routine: $fsdbTrans_create_stream_begin:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_create_stream_begin
#define __VCS_PLI_STUB_novas_call_fsdbEvent_create_stream_begin
extern void novas_call_fsdbEvent_create_stream_begin(int data, int reason);
#pragma weak novas_call_fsdbEvent_create_stream_begin
void novas_call_fsdbEvent_create_stream_begin(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_create_stream_begin");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_create_stream_begin");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_create_stream_begin");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_create_stream_begin)(int data, int reason) = novas_call_fsdbEvent_create_stream_begin;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_create_stream_begin */
/* PLI routine: $fsdbTrans_define_attribute:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_add_stream_attribute
#define __VCS_PLI_STUB_novas_call_fsdbEvent_add_stream_attribute
extern void novas_call_fsdbEvent_add_stream_attribute(int data, int reason);
#pragma weak novas_call_fsdbEvent_add_stream_attribute
void novas_call_fsdbEvent_add_stream_attribute(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_add_stream_attribute");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_add_stream_attribute");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_add_stream_attribute");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_add_stream_attribute)(int data, int reason) = novas_call_fsdbEvent_add_stream_attribute;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_add_stream_attribute */
/* PLI routine: $fsdbTrans_create_stream_end:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_create_stream_end
#define __VCS_PLI_STUB_novas_call_fsdbEvent_create_stream_end
extern void novas_call_fsdbEvent_create_stream_end(int data, int reason);
#pragma weak novas_call_fsdbEvent_create_stream_end
void novas_call_fsdbEvent_create_stream_end(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_create_stream_end");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_create_stream_end");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_create_stream_end");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_create_stream_end)(int data, int reason) = novas_call_fsdbEvent_create_stream_end;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_create_stream_end */
/* PLI routine: $fsdbTrans_begin:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_begin
#define __VCS_PLI_STUB_novas_call_fsdbEvent_begin
extern void novas_call_fsdbEvent_begin(int data, int reason);
#pragma weak novas_call_fsdbEvent_begin
void novas_call_fsdbEvent_begin(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_begin");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_begin");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_begin");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_begin)(int data, int reason) = novas_call_fsdbEvent_begin;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_begin */
/* PLI routine: $fsdbTrans_set_label:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_set_label
#define __VCS_PLI_STUB_novas_call_fsdbEvent_set_label
extern void novas_call_fsdbEvent_set_label(int data, int reason);
#pragma weak novas_call_fsdbEvent_set_label
void novas_call_fsdbEvent_set_label(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_set_label");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_set_label");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_set_label");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_set_label)(int data, int reason) = novas_call_fsdbEvent_set_label;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_set_label */
/* PLI routine: $fsdbTrans_add_attribute:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_add_attribute
#define __VCS_PLI_STUB_novas_call_fsdbEvent_add_attribute
extern void novas_call_fsdbEvent_add_attribute(int data, int reason);
#pragma weak novas_call_fsdbEvent_add_attribute
void novas_call_fsdbEvent_add_attribute(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_add_attribute");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_add_attribute");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_add_attribute");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_add_attribute)(int data, int reason) = novas_call_fsdbEvent_add_attribute;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_add_attribute */
/* PLI routine: $fsdbTrans_add_tag:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_add_tag
#define __VCS_PLI_STUB_novas_call_fsdbEvent_add_tag
extern void novas_call_fsdbEvent_add_tag(int data, int reason);
#pragma weak novas_call_fsdbEvent_add_tag
void novas_call_fsdbEvent_add_tag(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_add_tag");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_add_tag");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_add_tag");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_add_tag)(int data, int reason) = novas_call_fsdbEvent_add_tag;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_add_tag */
/* PLI routine: $fsdbTrans_end:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_end
#define __VCS_PLI_STUB_novas_call_fsdbEvent_end
extern void novas_call_fsdbEvent_end(int data, int reason);
#pragma weak novas_call_fsdbEvent_end
void novas_call_fsdbEvent_end(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_end");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_end");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_end");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_end)(int data, int reason) = novas_call_fsdbEvent_end;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_end */
/* PLI routine: $fsdbTrans_add_relation:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_add_relation
#define __VCS_PLI_STUB_novas_call_fsdbEvent_add_relation
extern void novas_call_fsdbEvent_add_relation(int data, int reason);
#pragma weak novas_call_fsdbEvent_add_relation
void novas_call_fsdbEvent_add_relation(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_add_relation");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_add_relation");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_add_relation");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_add_relation)(int data, int reason) = novas_call_fsdbEvent_add_relation;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_add_relation */
/* PLI routine: $fsdbTrans_get_error_code:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbEvent_get_error_code
#define __VCS_PLI_STUB_novas_call_fsdbEvent_get_error_code
extern void novas_call_fsdbEvent_get_error_code(int data, int reason);
#pragma weak novas_call_fsdbEvent_get_error_code
void novas_call_fsdbEvent_get_error_code(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbEvent_get_error_code");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbEvent_get_error_code");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbEvent_get_error_code");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbEvent_get_error_code)(int data, int reason) = novas_call_fsdbEvent_get_error_code;
#endif /* __VCS_PLI_STUB_novas_call_fsdbEvent_get_error_code */
/* PLI routine: $fsdbTrans_add_stream_attribute:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbTrans_add_stream_attribute
#define __VCS_PLI_STUB_novas_call_fsdbTrans_add_stream_attribute
extern void novas_call_fsdbTrans_add_stream_attribute(int data, int reason);
#pragma weak novas_call_fsdbTrans_add_stream_attribute
void novas_call_fsdbTrans_add_stream_attribute(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbTrans_add_stream_attribute");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbTrans_add_stream_attribute");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbTrans_add_stream_attribute");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbTrans_add_stream_attribute)(int data, int reason) = novas_call_fsdbTrans_add_stream_attribute;
#endif /* __VCS_PLI_STUB_novas_call_fsdbTrans_add_stream_attribute */
/* PLI routine: $fsdbTrans_add_scope_attribute:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbTrans_add_scope_attribute
#define __VCS_PLI_STUB_novas_call_fsdbTrans_add_scope_attribute
extern void novas_call_fsdbTrans_add_scope_attribute(int data, int reason);
#pragma weak novas_call_fsdbTrans_add_scope_attribute
void novas_call_fsdbTrans_add_scope_attribute(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbTrans_add_scope_attribute");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbTrans_add_scope_attribute");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbTrans_add_scope_attribute");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbTrans_add_scope_attribute)(int data, int reason) = novas_call_fsdbTrans_add_scope_attribute;
#endif /* __VCS_PLI_STUB_novas_call_fsdbTrans_add_scope_attribute */
/* PLI routine: $sps_interactive:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_interactive
#define __VCS_PLI_STUB_novas_call_sps_interactive
extern void novas_call_sps_interactive(int data, int reason);
#pragma weak novas_call_sps_interactive
void novas_call_sps_interactive(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_interactive");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_interactive");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_interactive");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_interactive)(int data, int reason) = novas_call_sps_interactive;
#endif /* __VCS_PLI_STUB_novas_call_sps_interactive */
/* PLI routine: $sps_test:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_test
#define __VCS_PLI_STUB_novas_call_sps_test
extern void novas_call_sps_test(int data, int reason);
#pragma weak novas_call_sps_test
void novas_call_sps_test(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_test");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_test");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_test");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_test)(int data, int reason) = novas_call_sps_test;
#endif /* __VCS_PLI_STUB_novas_call_sps_test */
/* PLI routine: $fsdbDumpClassObject:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpClassObject
#define __VCS_PLI_STUB_novas_call_fsdbDumpClassObject
extern void novas_call_fsdbDumpClassObject(int data, int reason);
#pragma weak novas_call_fsdbDumpClassObject
void novas_call_fsdbDumpClassObject(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpClassObject");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpClassObject");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpClassObject");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpClassObject)(int data, int reason) = novas_call_fsdbDumpClassObject;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpClassObject */
/* PLI routine: $fsdbDumpClassObjectByFile:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpClassObjectByFile
#define __VCS_PLI_STUB_novas_call_fsdbDumpClassObjectByFile
extern void novas_call_fsdbDumpClassObjectByFile(int data, int reason);
#pragma weak novas_call_fsdbDumpClassObjectByFile
void novas_call_fsdbDumpClassObjectByFile(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpClassObjectByFile");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpClassObjectByFile");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpClassObjectByFile");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpClassObjectByFile)(int data, int reason) = novas_call_fsdbDumpClassObjectByFile;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpClassObjectByFile */
/* PLI routine: $ridbDump:call */
#ifndef __VCS_PLI_STUB_novas_call_ridbDump
#define __VCS_PLI_STUB_novas_call_ridbDump
extern void novas_call_ridbDump(int data, int reason);
#pragma weak novas_call_ridbDump
void novas_call_ridbDump(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_ridbDump");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_ridbDump");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_ridbDump");
}
}
void (*__vcs_pli_dummy_reference_novas_call_ridbDump)(int data, int reason) = novas_call_ridbDump;
#endif /* __VCS_PLI_STUB_novas_call_ridbDump */
/* PLI routine: $sps_flush_file:call */
#ifndef __VCS_PLI_STUB_novas_call_sps_flush_file
#define __VCS_PLI_STUB_novas_call_sps_flush_file
extern void novas_call_sps_flush_file(int data, int reason);
#pragma weak novas_call_sps_flush_file
void novas_call_sps_flush_file(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_sps_flush_file");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_sps_flush_file");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_sps_flush_file");
}
}
void (*__vcs_pli_dummy_reference_novas_call_sps_flush_file)(int data, int reason) = novas_call_sps_flush_file;
#endif /* __VCS_PLI_STUB_novas_call_sps_flush_file */
/* PLI routine: $fsdbDumpSingle:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpSingle
#define __VCS_PLI_STUB_novas_call_fsdbDumpSingle
extern void novas_call_fsdbDumpSingle(int data, int reason);
#pragma weak novas_call_fsdbDumpSingle
void novas_call_fsdbDumpSingle(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpSingle");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpSingle");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpSingle");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpSingle)(int data, int reason) = novas_call_fsdbDumpSingle;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpSingle */
/* PLI routine: $fsdbDumpIO:call */
#ifndef __VCS_PLI_STUB_novas_call_fsdbDumpIO
#define __VCS_PLI_STUB_novas_call_fsdbDumpIO
extern void novas_call_fsdbDumpIO(int data, int reason);
#pragma weak novas_call_fsdbDumpIO
void novas_call_fsdbDumpIO(int data, int reason)
{
static int _vcs_pli_stub_initialized_ = 0;
static void (*_vcs_pli_fp_)(int data, int reason) = NULL;
if (!_vcs_pli_stub_initialized_) {
_vcs_pli_stub_initialized_ = 1;
_vcs_pli_fp_ = (void (*)(int data, int reason)) dlsym(RTLD_NEXT, "novas_call_fsdbDumpIO");
if (_vcs_pli_fp_ == NULL) {
_vcs_pli_fp_ = (void (*)(int data, int reason)) VCS_dlsymLookup("novas_call_fsdbDumpIO");
}
}
if (_vcs_pli_fp_) {
_vcs_pli_fp_(data, reason);
} else {
vcsMsgReportNoSource1("PLI-DIFNF", "novas_call_fsdbDumpIO");
}
}
void (*__vcs_pli_dummy_reference_novas_call_fsdbDumpIO)(int data, int reason) = novas_call_fsdbDumpIO;
#endif /* __VCS_PLI_STUB_novas_call_fsdbDumpIO */
#ifdef __cplusplus
}
#endif

BIN
sim/csrc/_vcs_pli_stub_.o Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
reYIK_d.o
EULYA_d.o
amcQwB.o

BIN
sim/csrc/cgincr.sdb Normal file

Binary file not shown.

350
sim/csrc/cginfo.json Normal file
View File

@@ -0,0 +1,350 @@
{
"cpu_cycles_pass2_start": 45448695155550,
"PEModules": [],
"rlimit": {
"data": -1,
"stack": -1
},
"cycles_program_begin": 45448290911142,
"PrevCompiledModules": {},
"CurCompileUdps": {},
"perf": [
{
"stat": [
"main",
"entry",
0.021094083786010742,
0.046309999999999997,
0.016108000000000001,
211380,
211380,
0.0,
0.0,
1756197955.728925,
45448291181971
],
"sub": [
{
"stat": [
"doParsingAndDesignResolution",
"entry",
0.041102170944213867,
0.051603000000000003,
0.024726000000000001,
267272,
268072,
0.0,
0.0,
1756197955.7489331,
45448327167267
],
"sub": []
},
{
"stat": [
"doParsingAndDesignResolution",
"exit",
0.060034036636352539,
0.068806999999999993,
0.026464000000000001,
268496,
269144,
0.0,
0.0,
1756197955.7678649,
45448361287035
],
"sub": []
},
{
"stat": [
"doPostDesignResolutionToVir2Vcs",
"entry",
0.061084985733032227,
0.069100999999999996,
0.027220999999999999,
268496,
269144,
0.0,
0.0,
1756197955.7689159,
45448363148795
],
"sub": [
{
"stat": [
"doUptoVir2VcsNoSepCleanup",
"entry",
0.074229001998901367,
0.079996999999999999,
0.029472000000000002,
269608,
269612,
0.0,
0.0,
1756197955.7820599,
45448386873357
],
"sub": []
},
{
"stat": [
"doUptoVir2VcsNoSepCleanup",
"exit",
0.19600415229797363,
0.13907700000000001,
0.051239,
271472,
283820,
0.0059670000000000001,
0.034832000000000002,
1756197955.9038351,
45448606168370
],
"sub": []
},
{
"stat": [
"doRadify_vir2vcsAll",
"entry",
0.19611406326293945,
0.139158,
0.051269000000000002,
271472,
283820,
0.0059670000000000001,
0.034832000000000002,
1756197955.903945,
45448606320154
],
"sub": []
},
{
"stat": [
"doRadify_vir2vcsAll",
"exit",
0.20636320114135742,
0.147649,
0.053029,
272676,
283820,
0.0059670000000000001,
0.034832000000000002,
1756197955.9141941,
45448624886998
],
"sub": []
}
]
},
{
"stat": [
"doPostDesignResolutionToVir2Vcs",
"exit",
0.20646810531616211,
0.147729,
0.053057,
272676,
283820,
0.0059670000000000001,
0.034832000000000002,
1756197955.914299,
45448624978062
],
"sub": []
},
{
"stat": [
"doGAToPass2",
"entry",
0.20652103424072266,
0.14776800000000001,
0.053071,
272676,
283820,
0.0059670000000000001,
0.034832000000000002,
1756197955.9143519,
45448625073063
],
"sub": [
{
"stat": [
"DoPass2",
"entry",
0.24538707733154297,
0.14907799999999999,
0.056294999999999998,
271120,
283820,
0.0189,
0.057668999999999998,
1756197955.953218,
45448695143967
],
"sub": []
},
{
"stat": [
"DoPass2",
"exit",
0.42847418785095215,
0.31499300000000002,
0.073566999999999994,
285232,
285260,
0.0189,
0.057668999999999998,
1756197956.1363051,
45449024799828
],
"sub": []
}
]
},
{
"stat": [
"doGAToPass2",
"exit",
0.43257713317871094,
0.31767400000000001,
0.074746000000000007,
285232,
285260,
0.0189,
0.057668999999999998,
1756197956.140408,
45449032197193
],
"sub": []
}
]
},
{
"stat": [
"main",
"exit",
0.43307614326477051,
0.31807800000000003,
0.074842000000000006,
285224,
285260,
0.0189,
0.057668999999999998,
1756197956.140907,
45449033076874
],
"sub": []
}
],
"MlibObjs": {},
"NameTable": {
"std": [
"std",
"reYIK",
"module",
1
],
"...MASTER...": [
"SIM",
"amcQw",
"module",
3
],
"tb_data_cache": [
"tb_data_cache",
"EULYA",
"module",
2
]
},
"CompileStrategy": "fullobj",
"stat": {
"Frontend(%)": 49.865292291989341,
"ru_childs_end": {
"ru_utime_sec": 0.0189,
"ru_nvcsw": 26,
"ru_minflt": 10715,
"ru_stime_sec": 0.057668999999999998,
"ru_maxrss_kb": 25896,
"ru_majflt": 0,
"ru_nivcsw": 24
},
"ru_self_cgstart": {
"ru_utime_sec": 0.14915900000000001,
"ru_nvcsw": 30,
"ru_minflt": 26649,
"ru_stime_sec": 0.056326000000000001,
"ru_maxrss_kb": 78204,
"ru_majflt": 0,
"ru_nivcsw": 4
},
"totalObjSize": 405560,
"peak_mem_kb": 285260,
"cpu_cycles_cgstart": 45448695212266,
"realTime": 0.43317604064941406,
"outputSizePerQuad": 60.486204325130501,
"ru_childs_cgstart": {
"ru_utime_sec": 0.0189,
"ru_nvcsw": 26,
"ru_minflt": 10715,
"ru_stime_sec": 0.057668999999999998,
"ru_maxrss_kb": 25896,
"ru_majflt": 0,
"ru_nivcsw": 24
},
"mop/quad": 2.4156599552572708,
"nMops": 16197,
"nQuads": 6705,
"ru_self_end": {
"ru_utime_sec": 0.31812600000000002,
"ru_nvcsw": 32,
"ru_minflt": 31228,
"ru_stime_sec": 0.074853000000000003,
"ru_maxrss_kb": 92172,
"ru_majflt": 0,
"ru_nivcsw": 4
},
"cpu_cycles_total": 742224958,
"CodeGen(%)": 50.134707708010659,
"cpu_cycles_end": 45449033136100,
"mopSpeed": 95858.954707132143,
"quadSpeed": 39682.304828753535
},
"CompileStatus": "Successful",
"SIMBData": {
"out": "amcQwB.o",
"bytes": 121792,
"text": 0,
"archive": "archive.0/_16331_archive_1.a"
},
"LVLData": [
"SIM"
],
"CompileProcesses": [
"cgproc.16331.json"
],
"incremental": "on",
"CurCompileModules": [
"...MASTER...",
"...MASTER...",
"std",
"std",
"tb_data_cache",
"tb_data_cache"
],
"Misc": {
"vcs_version": "O-2018.09-1_Full64",
"vcs_build_date": "Build Date = Oct 12 2018 20:38:10",
"master_pid": 16331,
"VCS_HOME": "/home/synopsys/vcs-mx/O-2018.09-1",
"cwd": "/home/ICer/ic_prjs/IPA/sim",
"csrc": "csrc",
"default_output_dir": "csrc",
"hostname": "IC_EDA",
"csrc_abs": "/home/ICer/ic_prjs/IPA/sim/csrc",
"archive_dir": "archive.0",
"daidir": "simv.daidir",
"daidir_abs": "/home/ICer/ic_prjs/IPA/sim/simv.daidir"
}
}

284
sim/csrc/cgproc.16331.json Normal file
View File

@@ -0,0 +1,284 @@
{
"stat": {
"ru_self_end": {
"ru_utime_sec": 0.31775999999999999,
"ru_nvcsw": 32,
"ru_minflt": 31224,
"ru_stime_sec": 0.074767,
"ru_maxrss_kb": 92172,
"ru_majflt": 0,
"ru_nivcsw": 4
},
"ru_childs_end": {
"ru_utime_sec": 0.0189,
"ru_nvcsw": 26,
"ru_minflt": 10715,
"ru_stime_sec": 0.057668999999999998,
"ru_maxrss_kb": 25896,
"ru_majflt": 0,
"ru_nivcsw": 24
},
"cpu_cycles_end": 45449032347572,
"peak_mem_kb": 285260
},
"Modules": {
"tb_data_cache": {
"Compiled": "Yes",
"nQuads": 6487,
"start_perf": [
0.26711106300354004,
0.162518,
0.064589999999999995,
277368,
283820,
1756197955.974942,
45448734171870
],
"nRouts": 715,
"child_modules": {},
"Compiled Times": 1,
"significant_routs": [
[
29,
"R_VCSgd_EULYA_1d",
2188698,
95,
7
],
[
31,
"R_VCSgd_EULYA_1f",
3076549,
2178,
269
],
[
264,
"U_VCSgd_EULYA_264",
4042811,
3819,
355
],
[
274,
"U_VCSgd_EULYA_274",
5590207,
4729,
511
],
[
328,
"R_VCSgd_EULYA_148",
2365361,
2104,
268
],
[
346,
"R_VCSgd_EULYA_15a",
2456044,
2612,
300
],
[
348,
"R_VCSgd_EULYA_15c",
3181664,
2723,
290
],
[
374,
"R_VCSgd_EULYA_176",
3210868,
3639,
419
],
[
376,
"R_VCSgd_EULYA_178",
9568540,
8866,
1042
],
[
389,
"R_VCSgd_EULYA_185",
2166116,
1120,
148
]
],
"end_perf": [
0.42611598968505859,
0.31456600000000001,
0.071634000000000003,
283572,
283820,
45449020587427,
42949672961,
0
],
"nMops": 15669
},
"...MASTER...": {
"nQuads": 0,
"start_perf": [
0.24554800987243652,
0.14919499999999999,
0.056339,
271120,
283820,
1756197955.9533789,
45448695337291
],
"nRouts": 5,
"child_modules": {
"std": 1,
"tb_data_cache": 1
},
"end_perf": [
0.25063300132751465,
0.15148200000000001,
0.059139999999999998,
273552,
283820,
45448704529239,
0,
0
],
"nMops": 0
},
"std": {
"Compiled": "Yes",
"nQuads": 218,
"start_perf": [
0.25073599815368652,
0.151556,
0.059168999999999999,
273552,
283820,
1756197955.9585669,
45448704686469
],
"nRouts": 33,
"child_modules": {},
"Compiled Times": 1,
"significant_routs": [
[
1,
"T_VCSgd_reYIK_1_0",
2539467,
138,
13
],
[
24,
"F_VCSgd_reYIK_24_0",
2405512,
984,
90
]
],
"end_perf": [
0.26701617240905762,
0.16245000000000001,
0.064562999999999995,
277368,
283820,
45448734074536,
8589934594,
0
],
"svclass": [
"$vcs_nba_dyn_obj",
576,
35,
2,
2,
0,
"sigprop$$",
576,
35,
2,
2,
0,
"process",
2380,
200,
8,
8,
0,
"event",
597,
34,
2,
2,
0,
"mailbox",
1769,
140,
9,
9,
0,
"semaphore",
1119,
84,
5,
5,
0
],
"nMops": 528
}
},
"ObjArchives": [
{
"archive": "archive.0/_16331_archive_1.a",
"objects": [
[
"reYIK_d.o",
43078
],
[
"EULYA_d.o",
232786
],
[
"amcQwB.o",
121792
]
],
"size": 397656
}
],
"CompUnits": {
"EULYA_d": {
"mod": "tb_data_cache",
"out": "EULYA_d.o",
"bytes": 232786,
"text": 141941,
"checksum": 0,
"mode": 4,
"archive": "archive.0/_16331_archive_1.a"
},
"reYIK_d": {
"mod": "std",
"out": "reYIK_d.o",
"bytes": 43078,
"text": 7325,
"cls": 7017,
"checksum": 0,
"mode": 4,
"archive": "archive.0/_16331_archive_1.a"
},
"amcQw_d": {
"mod": "...MASTER...",
"out": "objs/amcQw_d.o",
"bytes": 7904,
"text": 434,
"checksum": 0,
"mode": 4
}
},
"reusePaths": {}
}

31
sim/csrc/filelist Normal file
View File

@@ -0,0 +1,31 @@
AR=ar
DOTLIBS=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libzerosoft_rt_stubs.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvirsim.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/liberrorinf.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libsnpsmalloc.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvfs.so
# This file is automatically generated by VCS. Any changes you make to it
# will be overwritten the next time VCS is run
VCS_LIBEXT=
XTRN_OBJS=
DPI_WRAPPER_OBJS =
DPI_STUB_OBJS =
# filelist.dpi will populate DPI_WRAPPER_OBJS and DPI_STUB_OBJS
include filelist.dpi
PLI_STUB_OBJS =
include filelist.pli
include filelist.hsopt
include filelist.cu
VCS_INCR_OBJS=
AUGDIR=
AUG_LDFLAGS=
SHARED_OBJ_SO=
VLOG_OBJS= $(VCS_OBJS) $(CU_OBJS) $(VCS_ARC0) $(XTRN_OBJS) $(DPI_WRAPPER_OBJS) $(VCS_INCR_OBJS) $(SHARED_OBJ_SO) $(HSOPT_OBJS)

33
sim/csrc/filelist.cu Normal file
View File

@@ -0,0 +1,33 @@
PIC_LD=ld
ARCHIVE_OBJS=
ARCHIVE_OBJS += _16331_archive_1.so
_16331_archive_1.so : archive.0/_16331_archive_1.a
@$(AR) -s $<
@$(PIC_LD) -shared -Bsymbolic -o .//../simv.daidir//_16331_archive_1.so --whole-archive $< --no-whole-archive
@rm -f $@
@ln -sf .//../simv.daidir//_16331_archive_1.so $@
O0_OBJS =
$(O0_OBJS) : %.o: %.c
$(CC_CG) $(CFLAGS_O0) -c -o $@ $<
%.o: %.c
$(CC_CG) $(CFLAGS_CG) -c -o $@ $<
CU_UDP_OBJS = \
CU_LVL_OBJS = \
SIM_l.o
MAIN_OBJS = \
objs/amcQw_d.o
CU_OBJS = $(MAIN_OBJS) $(ARCHIVE_OBJS) $(CU_UDP_OBJS) $(CU_LVL_OBJS)

0
sim/csrc/filelist.dpi Normal file
View File

13
sim/csrc/filelist.hsopt Normal file
View File

@@ -0,0 +1,13 @@
rmapats_mop.o: rmapats.m
@/home/synopsys/vcs-mx/O-2018.09-1/linux64/bin/cgmop1 -tls_initexe -pic -gen_obj rmapats.m rmapats_mop.o; rm -f rmapats.m; touch rmapats.m; touch rmapats_mop.o
rmapats.o: rmapats.c
@$(CC_CG) $(CFLAGS_CG) -c -fPIC -x c -o rmapats.o rmapats.c
rmapats%.o: rmapats%.c
@$(CC_CG) $(CFLAGS_CG) -c -fPIC -x c -o $@ $<
rmar.o: rmar.c
@$(CC_CG) $(CFLAGS_CG) -c -fPIC -x c -o rmar.o rmar.c
rmar%.o: rmar%.c
@$(CC_CG) $(CFLAGS_CG) -c -fPIC -x c -o $@ $<
include filelist.hsopt.objs

View File

@@ -0,0 +1 @@
LLVM_OBJS += rmar_llvm_0_1.o rmar_llvm_0_0.o

View File

@@ -0,0 +1,7 @@
HSOPT_OBJS +=rmapats_mop.o \
rmapats.o \
rmar.o rmar_nd.o
include filelist.hsopt.llvm2_0.objs
HSOPT_OBJS += $(LLVM_OBJS)

4
sim/csrc/filelist.pli Normal file
View File

@@ -0,0 +1,4 @@
PLI_STUB_OBJS += _vcs_pli_stub_.o
_vcs_pli_stub_.o: _vcs_pli_stub_.c
@$(CC) -I/home/synopsys/vcs-mx/O-2018.09-1/include -pipe -fPIC -I/home/synopsys/vcs-mx/O-2018.09-1/include -fPIC -c -o _vcs_pli_stub_.o _vcs_pli_stub_.c
@strip -g _vcs_pli_stub_.o

BIN
sim/csrc/hsim/hsim.sdb Normal file

Binary file not shown.

0
sim/csrc/import_dpic.h Normal file
View File

BIN
sim/csrc/objs/amcQw_d.o Normal file

Binary file not shown.

View File

43
sim/csrc/rmapats.c Normal file
View File

@@ -0,0 +1,43 @@
// file = 0; split type = patterns; threshold = 100000; total count = 0.
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include "rmapats.h"
void hsG_0__0 (struct dummyq_struct * I1288, EBLK * I1282, U I685);
void hsG_0__0 (struct dummyq_struct * I1288, EBLK * I1282, U I685)
{
U I1546;
U I1547;
U I1548;
struct futq * I1549;
struct dummyq_struct * pQ = I1288;
I1546 = ((U )vcs_clocks) + I685;
I1548 = I1546 & ((1 << fHashTableSize) - 1);
I1282->I727 = (EBLK *)(-1);
I1282->I731 = I1546;
if (I1546 < (U )vcs_clocks) {
I1547 = ((U *)&vcs_clocks)[1];
sched_millenium(pQ, I1282, I1547 + 1, I1546);
}
else if ((peblkFutQ1Head != ((void *)0)) && (I685 == 1)) {
I1282->I733 = (struct eblk *)peblkFutQ1Tail;
peblkFutQ1Tail->I727 = I1282;
peblkFutQ1Tail = I1282;
}
else if ((I1549 = pQ->I1189[I1548].I745)) {
I1282->I733 = (struct eblk *)I1549->I744;
I1549->I744->I727 = (RP )I1282;
I1549->I744 = (RmaEblk *)I1282;
}
else {
sched_hsopt(pQ, I1282, I1546);
}
}
#ifdef __cplusplus
extern "C" {
#endif
void SinitHsimPats(void);
#ifdef __cplusplus
}
#endif

2453
sim/csrc/rmapats.h Normal file

File diff suppressed because it is too large Load Diff

0
sim/csrc/rmapats.m Normal file
View File

BIN
sim/csrc/rmapats.o Normal file

Binary file not shown.

BIN
sim/csrc/rmapats_mop.o Normal file

Binary file not shown.

13
sim/csrc/rmar.c Normal file
View File

@@ -0,0 +1,13 @@
#include <stdio.h>
#include <stdlib.h>
#include "rmar0.h"
// stubs for Hil functions
#ifdef __cplusplus
extern "C" {
#endif
void __Hil__Static_Init_Func__(void) {}
#ifdef __cplusplus
}
#endif

18
sim/csrc/rmar.h Normal file
View File

@@ -0,0 +1,18 @@
#ifndef _RMAR1_H_
#define _RMAR1_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __DO_RMAHDR_
#include "rmar0.h"
#endif /*__DO_RMAHDR_*/
extern UP rmaFunctionRtlArray[];
#ifdef __cplusplus
}
#endif
#endif

BIN
sim/csrc/rmar.o Normal file

Binary file not shown.

13
sim/csrc/rmar0.h Normal file
View File

@@ -0,0 +1,13 @@
#ifndef _RMAR0_H_
#define _RMAR0_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif

BIN
sim/csrc/rmar_llvm_0_0.o Normal file

Binary file not shown.

BIN
sim/csrc/rmar_llvm_0_1.o Normal file

Binary file not shown.

BIN
sim/csrc/rmar_nd.o Normal file

Binary file not shown.

20
sim/novas.conf Normal file
View File

@@ -0,0 +1,20 @@
[qBaseWindow_saveRestoreSession_group]
10=/home/ICer/ic_prjs/IPA/sim/verdiLog/novas_autosave.ses
[qDockerWindow_C]
Verdi_1\position.x=-1
Verdi_1\position.y=27
Verdi_1\width=1280
Verdi_1\height=921
[QwMainWindow]
window\nWave_2\layout="@ByteArray(\0\0\0\xff\0\x3\x14Q\xfd\0\0\0\0\0\0\x5\0\0\0\x2\xfe\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x2\0\0\0\x2\0\0\0\f\0\0\0\x12\0W\0\x41\0V\0\x45\0_\0O\0P\0\x45\0N\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x12\0W\0\x41\0V\0\x45\0_\0\x45\0\x44\0I\0T\x1\0\0\0?\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x16\0W\0\x41\0V\0\x45\0_\0\x43\0U\0R\0S\0O\0R\x1\0\0\0\xb4\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x12\0W\0\x41\0V\0\x45\0_\0V\0I\0\x45\0W\x1\0\0\x2%\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\"\0W\0\x41\0V\0\x45\0_\0S\0\x45\0\x41\0R\0\x43\0H\0_\0\x45\0V\0\x45\0N\0T\x1\0\0\x2\x7f\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x1e\0W\0\x41\0V\0\x45\0_\0R\0\x45\0P\0L\0\x41\0Y\0_\0S\0I\0M\0\0\0\x2\xcb\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x12\0W\0\x41\0V\0\x45\0_\0G\0O\0T\0O\x1\0\0\x3\x1b\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0,\0W\0\x41\0V\0\x45\0_\0G\0O\0T\0O\0_\0N\0\x41\0M\0\x45\0\x44\0_\0M\0\x41\0R\0K\0\x45\0R\0\0\0\x3\x32\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0 \0W\0\x41\0V\0\x45\0_\0T\0R\0\x41\0N\0S\0\x41\0\x43\0T\0I\0O\0N\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0*\0W\0\x41\0V\0\x45\0_\0\x45\0X\0P\0L\0O\0R\0\x45\0_\0P\0R\0O\0P\0\x45\0R\0T\0Y\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0 \0W\0\x41\0V\0\x45\0_\0\x46\0I\0N\0\x44\0_\0S\0I\0G\0N\0\x41\0L\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x18\0W\0\x41\0V\0\x45\0_\0P\0R\0I\0M\0\x41\0R\0Y\0\0\0\x3\x99\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x2\0\0\0\x1\0\0\0\x32\0S\0\x45\0L\0\x45\0\x43\0T\0I\0O\0N\0_\0M\0\x45\0S\0S\0\x41\0G\0\x45\0_\0T\0O\0O\0L\0\x42\0\x41\0R\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)"
window\nWave_2\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\x1b\0\0\x4\xff\0\0\x3J\0\0\0\0\0\0\0\x1b\0\0\x4\xff\0\0\x3J\0\0\0\0\0\0)
window\nWave_2\menubar=true
window\nWave_2\splitters\splitter_5\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0\x3\0\0\x1:\x1\0\0\0\x1\0\0\0\0\x2)
window\nWave_2\splitters\splitter_2\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0\xe2\0\0\x4\x1e\x1\0\0\0\x1\0\0\0\0\x1)
window\nWave_2\splitters\splitter\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x3\0\0\0[\0\0\0\0\0\0\x3\xbd\x1\0\0\0\x1\0\0\0\0\x1)
window\nWave_2\splitters\Pane_Upper\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0\xe2\0\0\x4\x1b\x1\0\0\0\x1\0\0\0\0\x1)
window\nWave_2\splitters\splitter_3\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0[\0\0\x3\xbd\x1\0\0\0\x1\0\0\0\0\x1)
window\nWave_2\splitters\wholeSplitter\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x3\0\0\0O\0\0\0\xa3\0\0\0\x4\x1\0\0\0\x6\x1\0\0\0\x1)
window\nWave_2\splitters\middleSplitter\layout=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0\x4\0\0\0\x4\x1\0\0\0\x6\x1\0\0\0\x2)

1369
sim/novas.rc Normal file

File diff suppressed because it is too large Load Diff

359
sim/novas_dump.log Normal file
View File

@@ -0,0 +1,359 @@
#######################################################################################
# log primitive debug message of FSDB dumping #
# This is for R&D to analyze when there are issues happening when FSDB dump #
#######################################################################################
ANF: vcsd_get_serial_mode_status('simv: undefined symbol: vcsd_get_serial_mode_status')
ANF: vcsd_enable_sva_success_callback('simv: undefined symbol: vcsd_enable_sva_success_callback')
ANF: vcsd_disable_sva_success_callback('simv: undefined symbol: vcsd_disable_sva_success_callback')
ANF: vcsd_get_thread_id('simv: undefined symbol: vcsd_get_thread_id')
ANF: vcsd_get_power_scope_name('simv: undefined symbol: vcsd_get_power_scope_name')
ANF: vcsd_begin_no_value_var_info('simv: undefined symbol: vcsd_begin_no_value_var_info')
ANF: vcsd_end_no_value_var_info('simv: undefined symbol: vcsd_end_no_value_var_info')
ANF: vcsd_remove_xprop_merge_mode_callback('simv: undefined symbol: vcsd_remove_xprop_merge_mode_callback')
ANF: vcsd_node_check_native_callback('simv: undefined symbol: vcsd_node_check_native_callback')
ANF: vcsd_node_add_native_callback('simv: undefined symbol: vcsd_node_add_native_callback')
ANF: vcsdIsNativeVc('simv: undefined symbol: vcsdIsNativeVc')
ANF: vhpi_get_cb_info('simv: undefined symbol: vhpi_get_cb_info')
ANF: vhpi_free_handle('simv: undefined symbol: vhpi_free_handle')
ANF: vhpi_fetch_vcsd_handle('simv: undefined symbol: vhpi_fetch_vcsd_handle')
ANF: vhpi_fetch_vpi_handle('simv: undefined symbol: vhpi_fetch_vpi_handle')
ANF: vhpi_has_verilog_parent('simv: undefined symbol: vhpi_has_verilog_parent')
ANF: vhpi_is_verilog_scope('simv: undefined symbol: vhpi_is_verilog_scope')
ANF: scsd_xprop_is_enabled('simv: undefined symbol: scsd_xprop_is_enabled')
ANF: scsd_xprop_sig_is_promoted('simv: undefined symbol: scsd_xprop_sig_is_promoted')
ANF: scsd_xprop_int_xvalue('simv: undefined symbol: scsd_xprop_int_xvalue')
ANF: scsd_xprop_bool_xvalue('simv: undefined symbol: scsd_xprop_bool_xvalue')
ANF: scsd_xprop_enum_xvalue('simv: undefined symbol: scsd_xprop_enum_xvalue')
ANF: scsd_xprop_register_merge_mode_cb('simv: undefined symbol: scsd_xprop_register_merge_mode_cb')
ANF: scsd_xprop_delete_merge_mode_cb('simv: undefined symbol: scsd_xprop_delete_merge_mode_cb')
ANF: scsd_xprop_get_merge_mode('simv: undefined symbol: scsd_xprop_get_merge_mode')
ANF: scsd_thread_get_info('simv: undefined symbol: scsd_thread_get_info')
ANF: scsd_thread_vc_init('simv: undefined symbol: scsd_thread_vc_init')
ANF: scsd_master_set_delta_sync_cbk('simv: undefined symbol: scsd_master_set_delta_sync_cbk')
ANF: scsd_fgp_get_fsdb_cores('simv: undefined symbol: scsd_fgp_get_fsdb_cores')
ANF: msvEnableDumpingMode('simv: undefined symbol: msvEnableDumpingMode')
ANF: msvGetVersion('simv: undefined symbol: msvGetVersion')
ANF: msvGetInstProp('simv: undefined symbol: msvGetInstProp')
ANF: msvIsSpiceEngineReady('simv: undefined symbol: msvIsSpiceEngineReady')
ANF: msvSetAddProbeCallback('simv: undefined symbol: msvSetAddProbeCallback')
ANF: msvGetInstHandle('simv: undefined symbol: msvGetInstHandle')
ANF: msvGetProbeByInst('simv: undefined symbol: msvGetProbeByInst')
ANF: msvGetSigHandle('simv: undefined symbol: msvGetSigHandle')
ANF: msvGetProbeBySig('simv: undefined symbol: msvGetProbeBySig')
ANF: msvGetProbeInfo('simv: undefined symbol: msvGetProbeInfo')
ANF: msvRelease('simv: undefined symbol: msvRelease')
ANF: msvSetVcCallbackFunc('simv: undefined symbol: msvSetVcCallbackFunc')
ANF: msvCheckVcCallback('simv: undefined symbol: msvCheckVcCallback')
ANF: msvAddVcCallback('simv: undefined symbol: msvAddVcCallback')
ANF: msvRemoveVcCallback('simv: undefined symbol: msvRemoveVcCallback')
ANF: msvGetLatestValue('simv: undefined symbol: msvGetLatestValue')
ANF: msvSetEndofSimCallback('simv: undefined symbol: msvSetEndofSimCallback')
ANF: msvIgnoredProbe('simv: undefined symbol: msvIgnoredProbe')
ANF: msvGetThruNetInfo('simv: undefined symbol: msvGetThruNetInfo')
ANF: msvFreeThruNetInfo('simv: undefined symbol: msvFreeThruNetInfo')
ANF: PI_ace_get_output_time_unit('simv: undefined symbol: PI_ace_get_output_time_unit')
ANF: PI_ace_sim_sync('simv: undefined symbol: PI_ace_sim_sync')
ANF: msvGetRereadInitFile('simv: undefined symbol: msvGetRereadInitFile')
ANF: msvSetBeforeRereadCallback('simv: undefined symbol: msvSetBeforeRereadCallback')
ANF: msvSetAfterRereadCallback('simv: undefined symbol: msvSetAfterRereadCallback')
ANF: msvSetForceCallback('simv: undefined symbol: msvSetForceCallback')
ANF: msvSetReleaseCallback('simv: undefined symbol: msvSetReleaseCallback')
ANF: msvGetForceStatus('simv: undefined symbol: msvGetForceStatus')
ANF: vdi_fn_trigger_native_init_force('simv: undefined symbol: vdi_fn_trigger_native_init_force')
ANF: vdi_set_native_callback('simv: undefined symbol: vdi_set_native_callback')
ANF: vdi_fn_check_native_callback('simv: undefined symbol: vdi_fn_check_native_callback')
ANF: vdi_fn_add_native_callback('simv: undefined symbol: vdi_fn_add_native_callback')
ANF: vhdi_dt_get_type('simv: undefined symbol: vhdi_dt_get_type')
ANF: vhdi_dt_get_key('simv: undefined symbol: vhdi_dt_get_key')
ANF: vhdi_dt_get_vhdl_enum_info('simv: undefined symbol: vhdi_dt_get_vhdl_enum_info')
ANF: vhdi_dt_get_vhdl_physical_info('simv: undefined symbol: vhdi_dt_get_vhdl_physical_info')
ANF: vhdi_dt_get_vhdl_array_info('simv: undefined symbol: vhdi_dt_get_vhdl_array_info')
ANF: vhdi_dt_get_vhdl_record_info('simv: undefined symbol: vhdi_dt_get_vhdl_record_info')
ANF: vhdi_def_traverse_module('simv: undefined symbol: vhdi_def_traverse_module')
ANF: vhdi_def_traverse_scope('simv: undefined symbol: vhdi_def_traverse_scope')
ANF: vhdi_def_traverse_variable('simv: undefined symbol: vhdi_def_traverse_variable')
ANF: vhdi_def_get_module_id_by_vhpi('simv: undefined symbol: vhdi_def_get_module_id_by_vhpi')
ANF: vhdi_def_get_handle_by_module_id('simv: undefined symbol: vhdi_def_get_handle_by_module_id')
ANF: vhdi_def_get_variable_info_by_vhpi('simv: undefined symbol: vhdi_def_get_variable_info_by_vhpi')
ANF: vhdi_def_free('simv: undefined symbol: vhdi_def_free')
ANF: vhdi_ist_traverse_scope('simv: undefined symbol: vhdi_ist_traverse_scope')
ANF: vhdi_ist_traverse_variable('simv: undefined symbol: vhdi_ist_traverse_variable')
ANF: vhdi_ist_convert_by_vhpi('simv: undefined symbol: vhdi_ist_convert_by_vhpi')
ANF: vhdi_ist_clone('simv: undefined symbol: vhdi_ist_clone')
ANF: vhdi_ist_free('simv: undefined symbol: vhdi_ist_free')
ANF: vhdi_ist_hash_key('simv: undefined symbol: vhdi_ist_hash_key')
ANF: vhdi_ist_compare('simv: undefined symbol: vhdi_ist_compare')
ANF: vhdi_ist_get_value_addr('simv: undefined symbol: vhdi_ist_get_value_addr')
ANF: vhdi_set_scsd_callback('simv: undefined symbol: vhdi_set_scsd_callback')
ANF: vhdi_cbk_set_force_callback('simv: undefined symbol: vhdi_cbk_set_force_callback')
ANF: vhdi_trigger_init_force('simv: undefined symbol: vhdi_trigger_init_force')
ANF: vhdi_ist_check_scsd_callback('simv: undefined symbol: vhdi_ist_check_scsd_callback')
ANF: vhdi_ist_add_scsd_callback('simv: undefined symbol: vhdi_ist_add_scsd_callback')
ANF: vhdi_ist_remove_scsd_callback('simv: undefined symbol: vhdi_ist_remove_scsd_callback')
ANF: vhdi_ist_get_scsd_user_data('simv: undefined symbol: vhdi_ist_get_scsd_user_data')
ANF: vhdi_add_time_change_callback('simv: undefined symbol: vhdi_add_time_change_callback')
ANF: vhdi_get_real_value_by_value_addr('simv: undefined symbol: vhdi_get_real_value_by_value_addr')
ANF: vhdi_get_64_value_by_value_addr('simv: undefined symbol: vhdi_get_64_value_by_value_addr')
ANF: vhdi_xprop_inst_is_promoted('simv: undefined symbol: vhdi_xprop_inst_is_promoted')
ANF: vdi_ist_convert_by_vhdi('simv: undefined symbol: vdi_ist_convert_by_vhdi')
ANF: vhdi_ist_get_module_id('simv: undefined symbol: vhdi_ist_get_module_id')
ANF: vhdi_refine_foreign_scope_type('simv: undefined symbol: vhdi_refine_foreign_scope_type')
ANF: vhdi_flush_callback('simv: undefined symbol: vhdi_flush_callback')
ANF: vhdi_set_orig_name('simv: undefined symbol: vhdi_set_orig_name')
ANF: vhdi_set_dump_pt('simv: undefined symbol: vhdi_set_dump_pt')
ANF: vhdi_get_fsdb_option('simv: undefined symbol: vhdi_get_fsdb_option')
ANF: vhdi_fgp_get_mode('simv: undefined symbol: vhdi_fgp_get_mode')
ANF: vhdi_node_register_composite_var('simv: undefined symbol: vhdi_node_register_composite_var')
ANF: vhdi_node_analysis('simv: undefined symbol: vhdi_node_analysis')
ANF: vhdi_node_id('simv: undefined symbol: vhdi_node_id')
ANF: vhdi_node_ist_check_scsd_callback('simv: undefined symbol: vhdi_node_ist_check_scsd_callback')
ANF: vhdi_node_ist_add_scsd_callback('simv: undefined symbol: vhdi_node_ist_add_scsd_callback')
ANF: vhdi_node_ist_get_value_addr('simv: undefined symbol: vhdi_node_ist_get_value_addr')
VCS compile option:
option[0]: simv
option[1]: +vc
option[2]: +v2k
option[3]: /home/synopsys/vcs-mx/O-2018.09-1/linux64/bin/vcs1
option[4]: -Mcc=gcc
option[5]: -Mcplusplus=g++
option[6]: -Masflags=
option[7]: -Mcfl= -pipe -fPIC -O -I/home/synopsys/vcs-mx/O-2018.09-1/include
option[8]: -Mxcflags= -pipe -fPIC -I/home/synopsys/vcs-mx/O-2018.09-1/include
option[9]: -Mldflags= -rdynamic
option[10]: -Mout=simv
option[11]: -Mamsrun=
option[12]: -Mvcsaceobjs=
option[13]: -Mobjects= /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvirsim.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/liberrorinf.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libsnpsmalloc.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvfs.so
option[14]: -Mexternalobj=
option[15]: -Msaverestoreobj=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcs_save_restore_new.o
option[16]: -Mcrt0=
option[17]: -Mcrtn=
option[18]: -Mcsrc=
option[19]: -Msyslibs=/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/pli.a -ldl
option[20]: -Xvcs_run_simv=1
option[21]: -timescale=1ns/1ps
option[22]: -full64
option[23]: +vc
option[24]: +v2k
option[25]: -debug_access+all
option[26]: +vpi
option[27]: +vcsd1
option[28]: +itf+/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcsdp_lite.tab
option[29]: -picarchive
option[30]: -P
option[31]: /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
option[32]: -fsdb
option[33]: -sverilog
option[34]: -gen_obj
option[35]: -f
option[36]: rtl.f
option[37]: -f
option[38]: tb.f
option[39]: -load
option[40]: /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/libnovas.so:FSDBDumpCmd
option[41]: timescale=1ns/1ps
Chronologic Simulation VCS Release O-2018.09-1_Full64
Linux 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64
CPU cores: 8
Limit information:
======================================
cputime unlimited
filesize unlimited
datasize unlimited
stacksize 8192 kbytes
coredumpsize 0 kbytes
memoryuse unlimited
vmemoryuse unlimited
descriptors 4096
memorylocked 64 kbytes
maxproc 4096
======================================
(Special)Runtime environment variables:
Runtime environment variables:
XDG_SESSION_ID=2
HOSTNAME=IC_EDA
TERM_PROGRAM=vscode
UNAME=/bin/uname
SELINUX_ROLE_REQUESTED=
SCRNAME=vcs
VCS_DEPTH=0
SHELL=/bin/bash
TERM=xterm-256color
MAKEFLAGS=
HISTSIZE=1000
SSH_CLIENT=192.168.223.1 58217 22
QUESTASIM_HOME=/home/mentor/questasim
SELINUX_USE_CURRENT_RANGE=
TERM_PROGRAM_VERSION=1.85.2
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
LC_ALL=C
QT_GRAPHICSSYSTEM_CHECKED=1
USER=ICer
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
LD_LIBRARY_PATH=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib::/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/lib/LINUX64:/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/IUS/LINUX64/boot:/home/cadence/INCISIVE152/tools.lnx86/lib:/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/lib/LINUX64:/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/IUS/LINUX64/boot:/home/cadence/INCISIVE152/tools.lnx86/lib
SCRIPT_NAME=vcs
MAKE_TERMOUT=/dev/pts/1
VCS_MX_HOME_INTERNAL=1
DVE_HOME=/home/synopsys/vcs-mx/O-2018.09-1
SNPSLMD_LICENSE_FILE=27000@IC_EDA
MAKELEVEL=1
OVA_UUM=0
MFLAGS=
MMSIMHOME=/home/cadence/MMSIM151
VCS_MODE_FLAG=64
PATH=.:/home/Xilinx/SDK/2019.1/bin:/home/Xilinx/SDK/2019.1/gnu/microblaze/lin/bin:/home/Xilinx/SDK/2019.1/gnu/arm/lin/bin:/home/Xilinx/SDK/2019.1/gnu/microblaze/linux_toolchain/lin64_le/bin:/home/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin:/home/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-none-eabi/bin:/home/Xilinx/SDK/2019.1/gnu/aarch64/lin/aarch64-linux/bin:/home/Xilinx/SDK/2019.1/gnu/aarch64/lin/aarch64-none/bin:/home/Xilinx/SDK/2019.1/gnu/armr5/lin/gcc-arm-none-eabi/bin:/home/Xilinx/SDK/2019.1/tps/lnx64/cmake-3.3.2/bin:/home/Xilinx/Vivado/2019.1/bin:/home/Xilinx/DocNav:/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/bin/remote-cli:/home/Xilinx/SDK/2019.1/bin:/home/Xilinx/SDK/2019.1/gnu/microblaze/lin/bin:/home/Xilinx/SDK/2019.1/gnu/arm/lin/bin:/home/Xilinx/SDK/2019.1/gnu/microblaze/linux_toolchain/lin64_le/bin:/home/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin:/home/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-none-eabi/bin:/home/Xilinx/SDK/2019.1/gnu/aarch64/lin/aarch64-linux/bin:/home/Xilinx/SDK/2019.1/gnu/aarch64/lin/aarch64-none/bin:/home/Xilinx/SDK/2019.1/gnu/armr5/lin/gcc-arm-none-eabi/bin:/home/Xilinx/SDK/2019.1/tps/lnx64/cmake-3.3.2/bin:/home/Xilinx/Vivado/2019.1/bin:/home/Xilinx/DocNav:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/home/synopsys/fpga/N-2018.03-SP1/bin:/home/synopsys/pts/O-2018.06-SP1/bin:/home/synopsys/icc2/O-2018.06-SP1/bin:/home/synopsys/syn/O-2018.06-SP1/bin:/home/synopsys/lc/O-2018.06-SP1/bin:/home/synopsys/SpyGlass-L2016.06/SPYGLASS_HOME//bin:/home/synopsys/vcs-mx/O-2018.09-1/gui/dve/bin:/home/synopsys/vcs-mx/O-2018.09-1/bin:/home/synopsys/verdi/Verdi_O-2018.09-SP2/bin:/home/synopsys/scl/2018.06/linux64/bin::/home/cadence/IC617/tools/dfII/bin:/home/cadence/IC617/tools/plot/bin:/home/cadence/INCISIVE152/tools/bin:/home/cadence/MMSIM151/bin:/home/cadence/MMSIM151/tools/relxpert/bin:/home/cadence/INCISIVE152/bin:/home/cadence/INCISIVE152/tools.lnx86/bin:/home/cadence/INCISIVE152/tools.lnx86/dfII/bin:/home/mentor/questasim/linux_x86_64:/home/Riscv_Tools/bin:/home/Riscv_Tools/riscv-gnu-toolchain/qemu-6.0.0/build/riscv32-linux-user:/usr/local/sbin:/usr/sbin:/home/synopsys/fpga/N-2018.03-SP1/bin:/home/synopsys/pts/O-2018.06-SP1/bin:/home/synopsys/icc2/O-2018.06-SP1/bin:/home/synopsys/syn/O-2018.06-SP1/bin:/home/synopsys/lc/O-2018.06-SP1/bin:/home/synopsys/SpyGlass-L2016.06/SPYGLASS_HOME//bin:/home/synopsys/vcs-mx/O-2018.09-1/gui/dve/bin:/home/synopsys/vcs-mx/O-2018.09-1/bin:/home/synopsys/verdi/Verdi_O-2018.09-SP2/bin:/home/synopsys/scl/2018.06/linux64/bin::/home/cadence/IC617/tools/dfII/bin:/home/cadence/IC617/tools/plot/bin:/home/cadence/INCISIVE152/tools/bin:/home/cadence/MMSIM151/bin:/home/cadence/MMSIM151/tools/relxpert/bin:/home/cadence/INCISIVE152/bin:/home/cadence/INCISIVE152/tools.lnx86/bin:/home/cadence/INCISIVE152/tools.lnx86/dfII/bin:/home/mentor/questasim/linux_x86_64:/home/Riscv_Tools/bin:/home/Riscv_Tools/riscv-gnu-toolchain/qemu-6.0.0/build/riscv32-linux-user
MAIL=/var/spool/mail/ICer
PT_HOME=/home/synopsys/pts/O-2018.06-SP1
CALIBRE_HOME=/home/mentor//Calibre2015/aoi_cal_2015.2_36.27
VERDI_HOME=/home/synopsys/verdi/Verdi_O-2018.09-SP2
MGC_CALIBRE_LAYOUT_SERVER=IC_EDA:9189
PWD=/home/ICer/ic_prjs/IPA/sim
VCS_HOME=/home/synopsys/vcs-mx/O-2018.09-1
MGC_CALIBRE_SCHEMATIC_SERVER=IC_EDA:9199
LANG=zh_CN.UTF-8
KDEDIRS=/usr
VCS_ARCH_OVERRIDE=linux
VSCODE_GIT_ASKPASS_EXTRA_ARGS=
VMR_MODE_FLAG=64
SELINUX_LEVEL_REQUESTED=
CDSHOME=/home/cadence/IC617
XILINX_VIVADO=/home/Xilinx/Vivado/2019.1
QEMU_HOME=/home/Riscv_Tools/riscv-gnu-toolchain/qemu-6.0.0
HISTCONTROL=ignoredups
SPECMAN_HOME=/home/cadence/INCISIVE152/components/sn
VCS_ARG_ADDED_FOR_TMP=1
SNPS_VCS_TMPDIR=/tmp/vcs_20250826084555_15976
HOME=/home/ICer
RISCV=/home/Riscv_Tools
SHLVL=7
VSCODE_GIT_ASKPASS_MAIN=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/extensions/git/dist/askpass-main.js
MGC_HOME=/home/mentor/
ICC2_HOME=/home/synopsys/icc2/O-2018.06-SP1
MGC_LICENSE_FILE=/home/mentor//license/license.dat
CADHOME=/home/cadence
VCS_COM=/home/synopsys/vcs-mx/O-2018.09-1/linux64/bin/vcs1
LOGNAME=ICer
DC_HOME=/home/synopsys/syn/O-2018.06-SP1
MGLS_LICENSE_FILE=/home/mentor/questasim/mentor.dat
QTLIB=/usr/lib/qt-3.3/lib
SPYGLASS_HOME=/home/synopsys/SpyGlass-L2016.06/SPYGLASS_HOME/
MAKE_TERMERR=/dev/pts/1
XDG_DATA_DIRS=/home/ICer/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_CONNECTION=192.168.223.1 58217 192.168.223.129 22
VSCODE_GIT_IPC_HANDLE=/run/user/1000/vscode-git-07cba0c96a.sock
VSCODE_IPC_HOOK_CLI=/run/user/1000/vscode-ipc-1591ffa4-a3ad-479f-90eb-871a7ef0f2ac.sock
CDS_LIC_FILE=/home/cadence/license/cadence.dat
SPECMAN_DIR=/home/cadence/INCISIVE152/components/sn/
LESSOPEN=||/usr/bin/lesspipe.sh %s
BROWSER=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/bin/helpers/browser.sh
SCL_HOME=/home/synopsys/scl/2018.06
sysc_uni_pwd=/home/ICer/ic_prjs/IPA/sim
VSCODE_GIT_ASKPASS_NODE=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/node
GIT_ASKPASS=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/extensions/git/dist/askpass.sh
XDG_RUNTIME_DIR=/run/user/1000
SYNPLIFY_HOME=/home/synopsys/fpga/N-2018.03-SP1
VCS_ARCH=linux64
QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins
LC_HOME=/home/synopsys/lc/O-2018.06-SP1
TOOL_HOME=/home/synopsys/vcs-mx/O-2018.09-1/linux64
INCISIVE_HOME=/home/cadence/INCISIVE152
COLORTERM=truecolor
_=./simv
OLDPWD=/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch
VCS_HEAP_EXEC=true
VCS_PATHMAP_PRELOAD_DONE=1
VCS_EXEC_DONE=1
DVE=/home/synopsys/vcs-mx/O-2018.09-1/gui/dve
SPECMAN_OUTPUT_TO_TTY=1
Runtime command line arguments:
argv[0]=simv
argv[1]=+vc
argv[2]=+v2k
273 profile - 100
CPU/Mem usage: 0.080 sys, 0.480 user, 245.62M mem
274 Tue Aug 26 16:45:57 2025
275 pliAppInit
276 FSDB_GATE is set.
277 FSDB_RTL is set.
278 Enable Parallel Dumping.
279 pliAppMiscSet: New Sim Round
280 pliEntryInit
281 LIBSSCORE=found /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/lib/LINUXAMD64/libsscore_vcs201809.so through $NOVAS_HOME setting.
282 FSDB Dumper for VCS, Release Verdi_O-2018.09-SP2, Linux x86_64/64bit, 02/21/2019
283 (C) 1996 - 2019 by Synopsys, Inc.
284 sps_call_fsdbDumpfile_main at 0 : ../tb/data_cache/tb_data_cache.v(166)
285 argv[0]: (tb.fsdb)
286 *Verdi* : Create FSDB file 'tb.fsdb'
287 compile option from '/home/ICer/ic_prjs/IPA/sim/simv.daidir/vcs_rebuild'.
288 "vcs '-f' 'rtl.f' '-f' 'tb.f' '-timescale=1ns/1ps' '-full64' '-R' '+vc' '+v2k' '-sverilog' '-debug_access+all' 2>&1"
289 FSDB_VCS_ENABLE_FAST_VC is enable
290 sps_call_fsdbDumpvars_vd_main at 0 : ../tb/data_cache/tb_data_cache.v(167)
291 argv[0]: (0)
292 argv[1]: (handle) tb_data_cache
293 [spi_vcs_vd_ppi_create_root]: no upf option
294 FSDB dumper cannot dump UPF related power signal ($power_tree): no ppiPowerNetwork.
295 *Verdi* : Begin traversing the scope (tb_data_cache), layer (0).
296 *Verdi* : End of traversing.
297 pliAppHDL_DumpVarComplete traverse var: profile -
CPU/Mem usage: 0.130 sys, 0.490 user, 340.83M mem
incr: 0.010 sys, 0.010 user, 7.38M mem
accu: 0.010 sys, 0.010 user, 7.38M mem
accu incr: 0.010 sys, 0.010 user, 7.38M mem
Count usage: 258 var, 214 idcode, 106 callback
incr: 258 var, 214 idcode, 106 callback
accu: 258 var, 214 idcode, 106 callback
accu incr: 258 var, 214 idcode, 106 callback
298 Tue Aug 26 16:45:57 2025
299 pliAppHDL_DumpVarComplete: profile -
CPU/Mem usage: 0.130 sys, 0.490 user, 341.88M mem
incr: 0.000 sys, 0.000 user, 1.05M mem
accu: 0.010 sys, 0.010 user, 8.43M mem
accu incr: 0.000 sys, 0.000 user, 1.05M mem
Count usage: 258 var, 214 idcode, 106 callback
incr: 0 var, 0 idcode, 0 callback
accu: 258 var, 214 idcode, 106 callback
accu incr: 0 var, 0 idcode, 0 callback
300 Tue Aug 26 16:45:57 2025
301 sps_call_fsdbDumpMDA_vd_main at 0 : ../tb/data_cache/tb_data_cache.v(168)
302 argv[0]: (0)
303 argv[1]: (handle) tb_data_cache
304 *Verdi* : Begin traversing the MDAs under scope (tb_data_cache), layer (0).
305 *Verdi* : Enable +mda and +packedmda dumping.
306 *Verdi* : End of traversing the MDAs.
307 pliAppHDL_DumpVarComplete traverse var: profile -
CPU/Mem usage: 0.140 sys, 0.490 user, 341.88M mem
incr: 0.010 sys, 0.000 user, 0.00M mem
accu: 0.010 sys, 0.000 user, 0.00M mem
accu incr: 0.010 sys, 0.000 user, 0.00M mem
Count usage: 4098 var, 4054 idcode, 111 callback
incr: 3840 var, 3840 idcode, 5 callback
accu: 3840 var, 3840 idcode, 5 callback
accu incr: 3840 var, 3840 idcode, 5 callback
308 Tue Aug 26 16:45:57 2025
309 pliAppHDL_DumpVarComplete: profile -
CPU/Mem usage: 0.140 sys, 0.490 user, 342.16M mem
incr: 0.000 sys, 0.000 user, 0.28M mem
accu: 0.010 sys, 0.000 user, 0.28M mem
accu incr: 0.000 sys, 0.000 user, 0.28M mem
Count usage: 4098 var, 4054 idcode, 111 callback
incr: 0 var, 0 idcode, 0 callback
accu: 3840 var, 3840 idcode, 5 callback
accu incr: 0 var, 0 idcode, 0 callback
310 Tue Aug 26 16:45:57 2025
311 End of simulation at 36076000
312 Tue Aug 26 16:45:57 2025
313 Begin FSDB profile info:
314 FSDB Writer : bc1(35379) bcn(99202) mtf/stf(0/0)
FSDB Writer elapsed time : flush(0.033912) io wait(0.000000) theadpool wait(0.000000) target functin(0.000000)
FSDB Writer cpu time : MT Compression : 0
315 End FSDB profile info
316 Parallel profile - Flush:4 Expand:0 ProduceWait:0 ConsumerWait:1 BlockUsed:2
317 ProduceTime:0.730205081 ConsumerTime:0.021449033 Buffer:64MB
318 SimExit
319 Sim process exit

7
sim/rtl.f Normal file
View File

@@ -0,0 +1,7 @@
../rtl/data_cache/sync_fifo.v
../rtl/data_cache/async_fifo.v
../rtl/data_cache/histogram_ctrl.v
../rtl/data_cache/data_assemble.v
../rtl/data_cache/axi_write_ctrl.v
../rtl/data_cache/rst_sync.v
../rtl/data_cache/data_cache.v

BIN
sim/simv Executable file

Binary file not shown.

View File

View File

View File

@@ -0,0 +1,129 @@
0
34
+itf+/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcsdp_lite.tab
+v2k
+vc
+vcsd1
+vpi
-Mamsrun=
-Masflags=
-Mcc=gcc
-Mcfl= -pipe -fPIC -O -I/home/synopsys/vcs-mx/O-2018.09-1/include
-Mcplusplus=g++
-Mcrt0=
-Mcrtn=
-Mcsrc=
-Mexternalobj=
-Mldflags= -rdynamic
-Mobjects= /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvirsim.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/liberrorinf.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libsnpsmalloc.so /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvfs.so
-Mout=simv
-Msaverestoreobj=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcs_save_restore_new.o
-Msyslibs=/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/pli.a -ldl
-Mvcsaceobjs=
-Mxcflags= -pipe -fPIC -I/home/synopsys/vcs-mx/O-2018.09-1/include
-P
-Xvcs_run_simv=1
-debug_access+all
-f rtl.f
-f tb.f
-fsdb
-full64
-gen_obj
-picarchive
-sverilog
-timescale=1ns/1ps
/home/synopsys/vcs-mx/O-2018.09-1/linux64/bin/vcs1
/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
71
sysc_uni_pwd=/home/ICer/ic_prjs/IPA/sim
XILINX_VIVADO=/home/Xilinx/Vivado/2019.1
XDG_SESSION_ID=2
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/home/ICer/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
VSCODE_IPC_HOOK_CLI=/run/user/1000/vscode-ipc-1591ffa4-a3ad-479f-90eb-871a7ef0f2ac.sock
VSCODE_GIT_IPC_HANDLE=/run/user/1000/vscode-git-07cba0c96a.sock
VSCODE_GIT_ASKPASS_NODE=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/node
VSCODE_GIT_ASKPASS_MAIN=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/extensions/git/dist/askpass-main.js
VSCODE_GIT_ASKPASS_EXTRA_ARGS=
VMR_MODE_FLAG=64
VERDI_HOME=/home/synopsys/verdi/Verdi_O-2018.09-SP2
VCS_MX_HOME_INTERNAL=1
VCS_MODE_FLAG=64
VCS_HOME=/home/synopsys/vcs-mx/O-2018.09-1
VCS_DEPTH=0
VCS_ARG_ADDED_FOR_TMP=1
VCS_ARCH_OVERRIDE=linux
VCS_ARCH=linux64
UNAME=/bin/uname
TOOL_HOME=/home/synopsys/vcs-mx/O-2018.09-1/linux64
TERM_PROGRAM_VERSION=1.85.2
TERM_PROGRAM=vscode
SYNPLIFY_HOME=/home/synopsys/fpga/N-2018.03-SP1
SSH_CONNECTION=192.168.223.1 58217 192.168.223.129 22
SSH_CLIENT=192.168.223.1 58217 22
SPYGLASS_HOME=/home/synopsys/SpyGlass-L2016.06/SPYGLASS_HOME/
SPECMAN_HOME=/home/cadence/INCISIVE152/components/sn
SPECMAN_DIR=/home/cadence/INCISIVE152/components/sn/
SELINUX_USE_CURRENT_RANGE=
SELINUX_ROLE_REQUESTED=
SELINUX_LEVEL_REQUESTED=
SCRNAME=vcs
SCRIPT_NAME=vcs
SCL_HOME=/home/synopsys/scl/2018.06
RISCV=/home/Riscv_Tools
QUESTASIM_HOME=/home/mentor/questasim
QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins
QT_GRAPHICSSYSTEM_CHECKED=1
QTLIB=/usr/lib/qt-3.3/lib
QTINC=/usr/lib/qt-3.3/include
QTDIR=/usr/lib/qt-3.3
QEMU_HOME=/home/Riscv_Tools/riscv-gnu-toolchain/qemu-6.0.0
PT_HOME=/home/synopsys/pts/O-2018.06-SP1
OVA_UUM=0
MMSIMHOME=/home/cadence/MMSIM151
MGLS_LICENSE_FILE=/home/mentor/questasim/mentor.dat
MGC_LICENSE_FILE=/home/mentor//license/license.dat
MGC_HOME=/home/mentor/
MGC_CALIBRE_SCHEMATIC_SERVER=IC_EDA:9199
MGC_CALIBRE_LAYOUT_SERVER=IC_EDA:9189
MFLAGS=
MAKE_TERMOUT=/dev/pts/1
MAKE_TERMERR=/dev/pts/1
MAKELEVEL=1
MAKEFLAGS=
LESSOPEN=||/usr/bin/lesspipe.sh %s
LC_HOME=/home/synopsys/lc/O-2018.06-SP1
LC_ALL=C
KDEDIRS=/usr
INCISIVE_HOME=/home/cadence/INCISIVE152
ICC2_HOME=/home/synopsys/icc2/O-2018.06-SP1
HISTCONTROL=ignoredups
GIT_ASKPASS=/home/ICer/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/extensions/git/dist/askpass.sh
DVE_HOME=/home/synopsys/vcs-mx/O-2018.09-1
DC_HOME=/home/synopsys/syn/O-2018.06-SP1
COLORTERM=truecolor
CDS_LIC_FILE=/home/cadence/license/cadence.dat
CDSHOME=/home/cadence/IC617
CALIBRE_HOME=/home/mentor//Calibre2015/aoi_cal_2015.2_36.27
CADHOME=/home/cadence
0
12
1756197905 ../tb/data_cache/tb_data_cache.v
1756194528 ../rtl/data_cache/data_cache.v
1756115099 ../rtl/data_cache/rst_sync.v
1756112329 ../rtl/data_cache/axi_write_ctrl.v
1756197232 ../rtl/data_cache/data_assemble.v
1756109175 ../rtl/data_cache/histogram_ctrl.v
1756107950 ../rtl/data_cache/async_fifo.v
1756106550 ../rtl/data_cache/sync_fifo.v
1756197951 tb.f
1756197943 rtl.f
1550753332 /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
1539400757 /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/vcsdp_lite.tab
4
1539402341 /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvirsim.so
1539401183 /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/liberrorinf.so
1539401125 /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libsnpsmalloc.so
1539401175 /home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/libvfs.so
1756197957 simv.daidir
-1 partitionlib

Binary file not shown.

BIN
sim/simv.daidir/binmap.sdb Normal file

Binary file not shown.

4
sim/simv.daidir/build_db Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh -e
# This file is automatically generated by VCS. Any changes you make
# to it will be overwritten the next time VCS is run.
vcs '-f' 'rtl.f' '-f' 'tb.f' '-timescale=1ns/1ps' '-full64' '-R' '+vc' '+v2k' '-sverilog' '-debug_access+all' -static_dbgen_only -daidir=$1 2>&1

View File

@@ -0,0 +1,7 @@
sid tb_data_cache
bcid 0 0 WIDTH,4 OPT_CONST,0 WIDTH,3 CALL_ARG_VAL,2,0 WIDTH,4 PAD WIDTH,1 EQU CALL_ARG_VAL,3,0 OPT_CONST,1 EQU CALL_ARG_VAL,4,0 NOT OPT_CONST,1 EQU WIDTH,3 OPT_CONST,1 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 WIDTH,4 OPT_CONST,1 WIDTH,3 CALL_ARG_VAL,2,0 WIDTH,4 PAD WIDTH,1 EQU WIDTH,26 CALL_ARG_VAL,5,0 WIDTH,32 OPT_CONST,25 WIDTH,1 SLICE,1 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,2 WIDTH,1 CALL_ARG_VAL,4,0 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,0 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 WIDTH,4 OPT_CONST,2 WIDTH,3 CALL_ARG_VAL,2,0 WIDTH,4 PAD WIDTH,1 EQU WIDTH,16 CALL_ARG_VAL,6,0 CALL_ARG_VAL,7,0 OPT_CONST,1 SUBTRACT WIDTH,1 M_EQU WIDTH,16 CALL_ARG_VAL,8,0 CALL_ARG_VAL,9,0 OPT_CONST,1 SUBTRACT WIDTH,1 M_EQU AND OPT_CONST,1 EQU WIDTH,3 OPT_CONST,3 WIDTH,1 CALL_ARG_VAL,4,0 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,0 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 WIDTH,4 OPT_CONST,3 WIDTH,3 CALL_ARG_VAL,2,0 WIDTH,4 PAD WIDTH,1 EQU CALL_ARG_VAL,10,0 CALL_ARG_VAL,11,0 AND OPT_CONST,1 EQU WIDTH,3 OPT_CONST,4 WIDTH,1 CALL_ARG_VAL,10,0 CALL_ARG_VAL,11,0 NOT AND OPT_CONST,1 EQU WIDTH,3 OPT_CONST,5 WIDTH,1 CALL_ARG_VAL,4,0 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,0 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 WIDTH,4 OPT_CONST,4 WIDTH,3 CALL_ARG_VAL,2,0 WIDTH,4 PAD WIDTH,1 EQU CALL_ARG_VAL,12,0 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,5 WIDTH,1 CALL_ARG_VAL,4,0 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,0 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 WIDTH,4 OPT_CONST,5 WIDTH,3 CALL_ARG_VAL,2,0 WIDTH,4 PAD WIDTH,1 EQU CALL_ARG_VAL,13,0 OPT_CONST,1 EQU WIDTH,3 OPT_CONST,1 OPT_CONST,5 MITECONDNOINSTR,4 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 RET
bcid 1 1 WIDTH,2 OPT_CONST,0 CALL_ARG_VAL,2,0 WIDTH,1 EQU CALL_ARG_VAL,3,0 OPT_CONST,1 EQU WIDTH,2 OPT_CONST,1 WIDTH,1 CALL_ARG_VAL,4,0 CALL_ARG_VAL,5,0 CALL_ARG_VAL,6,0 OR OR OPT_CONST,1 EQU WIDTH,2 OPT_CONST,2 WIDTH,1 CALL_ARG_VAL,7,0 OPT_CONST,1 EQU WIDTH,2 OPT_CONST,3 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 OPT_CONST,1 CALL_ARG_VAL,2,0 WIDTH,1 EQU WIDTH,8 CALL_ARG_VAL,8,0 OPT_CONST,255 WIDTH,1 M_EQU OPT_CONST,1 EQU WIDTH,2 OPT_CONST,0 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 OPT_CONST,2 CALL_ARG_VAL,2,0 WIDTH,1 EQU CALL_ARG_VAL,3,0 OPT_CONST,1 EQU WIDTH,2 OPT_CONST,1 WIDTH,1 CALL_ARG_VAL,7,0 OPT_CONST,1 EQU WIDTH,2 OPT_CONST,3 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 OPT_CONST,3 CALL_ARG_VAL,2,0 WIDTH,1 EQU WIDTH,8 CALL_ARG_VAL,8,0 OPT_CONST,255 WIDTH,1 M_EQU OPT_CONST,1 EQU WIDTH,2 OPT_CONST,0 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 CALL_ARG_VAL,2,0 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 MITECONDNOINSTR,4 RET
bcid 2 2 WIDTH,1 CALL_ARG_VAL,2,0 NOT WIDTH,3 CALL_ARG_VAL,3,0 WIDTH,4 PAD OPT_CONST,1 WIDTH,1 M_EQU CALL_ARG_VAL,4,0 OR CALL_ARG_VAL,5,0 NOT AND AND RET
bcid 3 3 WIDTH,11 CALL_ARG_VAL,2,0 CALL_ARG_VAL,2,0 WIDTH,32 OPT_CONST,1 WIDTH,11 SHIFT_R XOR RET
bcid 4 4 WIDTH,12 CALL_ARG_VAL,2,0 WIDTH,32 OPT_CONST,11 WIDTH,1 SLICE,1 WIDTH,12 CALL_ARG_VAL,3,0 WIDTH,32 OPT_CONST,11 WIDTH,1 SLICE,1 XOR WIDTH,12 CALL_ARG_VAL,2,0 WIDTH,32 OPT_CONST,0 WIDTH,11 SLICE,1 WIDTH,12 CALL_ARG_VAL,3,0 WIDTH,32 OPT_CONST,0 WIDTH,11 SLICE,1 WIDTH,1 M_EQU AND RET
bcid 5 5 WIDTH,12 CALL_ARG_VAL,2,0 CALL_ARG_VAL,3,0 WIDTH,1 M_EQU RET

View File

@@ -0,0 +1,2 @@
Dummy_file
Missing line/file info

View File

@@ -0,0 +1,20 @@
{
"std": [
"std",
"reYIK",
"module",
1
],
"...MASTER...": [
"SIM",
"amcQw",
"module",
3
],
"tb_data_cache": [
"tb_data_cache",
"EULYA",
"module",
2
]
}

View File

View File

@@ -0,0 +1,4 @@
O-2018.09-1_Full64
Build Date = Oct 12 2018 20:38:10
RedHat
Compile Location: /home/ICer/ic_prjs/IPA/sim

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1,9 @@
#!/bin/sh -h
PYTHONHOME=/home/synopsys/vcs-mx/O-2018.09-1/etc/search/pyh
export PYTHONHOME
PYTHONPATH=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/pylib27
export PYTHONPATH
LD_LIBRARY_PATH=/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib:/home/synopsys/vcs-mx/O-2018.09-1/linux64/lib/pylib27
export LD_LIBRARY_PATH
/home/synopsys/vcs-mx/O-2018.09-1/linux64/bin/vcsfind_create_index.exe -z "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/./idents_s87tOh.xml.gz" "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/./idents_tapi.xml.gz" -o "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.db_tmp"
\mv "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.db_tmp" "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.db"

View File

@@ -0,0 +1,57 @@
#!/bin/sh -h
FILE_PATH="/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch"
lockfile="${FILE_PATH}"/lock
FSearch_lock_release() {
echo "" > /dev/null
}
create_fsearch_db_ctrl() {
if [ -s "${FILE_PATH}"/fsearch.stat ]; then
if [ -s "${FILE_PATH}"/fsearch.log ]; then
echo "ERROR building identifier database failed. Check ${FILE_PATH}/fsearch.log"
else
cat "${FILE_PATH}"/fsearch.stat
fi
return
fi
nohup "$1" > "${FILE_PATH}"/fsearch.log 2>&1 193>/dev/null &
MY_PID=`echo $!`
BUILDER="pid ${MY_PID} ${USER}@${hostname}"
echo "INFO Started building database for Identifiers, please wait ($BUILDER). Use VCS elab option '-debug_access+idents_db' to build the database earlier."
echo "INFO Still building database for Identifiers, please wait ($BUILDER). Use VCS elab option '-debug_access+idents_db' to build the database earlier." > "${FILE_PATH}"/fsearch.stat
return
}
dir_name=`/bin/dirname "$0"`
if [ "${dir_name}" = "." ]; then
cd $dir_name
dir_name=`/bin/pwd`
fi
if [ -d "$dir_name"/../../../../../../../.. ]; then
cd "$dir_name"/../../../../../../../..
fi
if [ -f "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/.create_fsearch_db" ]; then
if [ ! -f "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.db" ]; then
if [ "$#" -eq 1 ] && [ "x$1" == "x-background" ]; then
trap FSearch_lock_release EXIT
(
flock 193
create_fsearch_db_ctrl "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/.create_fsearch_db"
exit 193
) 193> "$lockfile"
rstat=$?
if [ "${rstat}"x != "193x" ]; then
exit $rstat
fi
else
"/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/.create_fsearch_db"
if [ -f "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.stat" ]; then
rm -f "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.stat"
fi
fi
elif [ -f "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.stat" ]; then
rm -f "/home/ICer/ic_prjs/IPA/sim/simv.daidir/debug_dump/fsearch/fsearch.stat"
fi
fi

Binary file not shown.

View File

@@ -0,0 +1,8 @@
/home/ICer/ic_prjs/IPA/rtl/data_cache/async_fifo.v
/home/ICer/ic_prjs/IPA/rtl/data_cache/axi_write_ctrl.v
/home/ICer/ic_prjs/IPA/rtl/data_cache/data_assemble.v
/home/ICer/ic_prjs/IPA/rtl/data_cache/data_cache.v
/home/ICer/ic_prjs/IPA/rtl/data_cache/histogram_ctrl.v
/home/ICer/ic_prjs/IPA/rtl/data_cache/rst_sync.v
/home/ICer/ic_prjs/IPA/rtl/data_cache/sync_fifo.v
/home/ICer/ic_prjs/IPA/tb/data_cache/tb_data_cache.v

View File

@@ -0,0 +1 @@
<02>E<EFBFBD>d

Binary file not shown.

BIN
sim/simv.daidir/eblklvl.db Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,78 @@
pli $fsdbDumpvars novas_call_fsdbDumpvars - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpvarsES novas_call_fsdbDumpvarsES - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMDA novas_call_fsdbDumpMDA - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpSVA novas_call_fsdbDumpSVA - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpvarsByFile novas_call_fsdbDumpvarsByFile - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbSuppress novas_call_fsdbSuppress - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpon novas_call_fsdbDumpon - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpoff novas_call_fsdbDumpoff - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbSwitchDumpfile novas_call_fsdbSwitchDumpfile - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpfile novas_call_fsdbDumpfile - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbAutoSwitchDumpfile novas_call_fsdbAutoSwitchDumpfile - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpFinish novas_call_fsdbDumpFinish - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpflush novas_call_fsdbDumpflush - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbLog novas_call_fsdbLog - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbAddRuntimeSignal novas_call_fsdbAddRuntimeSignal - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpSC novas_call_fsdbDumpSC - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpvarsToFile novas_call_fsdbDumpvarsToFile - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_create_transaction_stream novas_call_sps_create_transaction_stream - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_begin_transaction novas_call_sps_begin_transaction - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_end_transaction novas_call_sps_end_transaction - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_free_transaction novas_call_sps_free_transaction - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_add_attribute novas_call_sps_add_attribute - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_update_label novas_call_sps_update_label - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_add_relation novas_call_sps_add_relation - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbWhatif novas_call_fsdbWhatif - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $paa_init novas_call_paa_init - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $paa_sync novas_call_paa_sync - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpClassMethod novas_call_fsdbDumpClassMethod - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbSuppressClassMethod novas_call_fsdbSuppressClassMethod - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbSuppressClassProp novas_call_fsdbSuppressClassProp - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMDAByFile novas_call_fsdbDumpMDAByFile - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_create_stream_begin novas_call_fsdbEvent_create_stream_begin - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_define_attribute novas_call_fsdbEvent_add_stream_attribute - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_create_stream_end novas_call_fsdbEvent_create_stream_end - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_begin novas_call_fsdbEvent_begin - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_set_label novas_call_fsdbEvent_set_label - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_add_attribute novas_call_fsdbEvent_add_attribute - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_add_tag novas_call_fsdbEvent_add_tag - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_end novas_call_fsdbEvent_end - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_add_relation novas_call_fsdbEvent_add_relation - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_get_error_code novas_call_fsdbEvent_get_error_code - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_add_stream_attribute novas_call_fsdbTrans_add_stream_attribute - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbTrans_add_scope_attribute novas_call_fsdbTrans_add_scope_attribute - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_interactive novas_call_sps_interactive - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_test novas_call_sps_test - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpClassObject novas_call_fsdbDumpClassObject - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpClassObjectByFile novas_call_fsdbDumpClassObjectByFile - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $ridbDump novas_call_ridbDump - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $sps_flush_file novas_call_sps_flush_file - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpPSL novas_call_fsdbDumpPSL - novas_misc /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDisplay novas_call_fsdbDisplay - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumplimit novas_call_fsdbDumplimit - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMem novas_call_fsdbDumpMem - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMemNow novas_call_fsdbDumpMemNow - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMemInScope novas_call_fsdbDumpMemInScope - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMDANow novas_call_fsdbDumpMDANow - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMDAOnChange novas_call_fsdbDumpMDAOnChange - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMDAInScope novas_call_fsdbDumpMDAInScope - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpMemInFile novas_call_fsdbDumpMemInFile - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpPSLon novas_call_fsdbDumpPSLon - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpPSLoff novas_call_fsdbDumpPSLoff - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpSVAon novas_call_fsdbDumpSVAon - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpSVAoff novas_call_fsdbDumpSVAoff - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpStrength novas_call_fsdbDumpStrength - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpSingle novas_call_fsdbDumpSingle - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpIO novas_call_fsdbDumpIO - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbDumpPattern novas_call_fsdbDumpPattern - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $fsdbSubstituteHier novas_call_fsdbSubstituteHier - - /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64/verdi.tab
pli $dumpports DumpPortsIeeeCALL - DumpPortsMISC
pli $lsi_dumpports DumpPortsLsiCALL - DumpPortsMISC
pli $dumpportson DumpPortsOnCALL - DumpPortsMISC
pli $dumpportsoff DumpPortsOffCALL - DumpPortsMISC
pli $dumpportsflush DumpPortsFlushCALL - DumpPortsMISC
pli $simlearn simLearnCall simLearnCheck simLearnMisc
pli $dumpportsall DumpPortsAllCALL - DumpPortsMISC
pli $dumpportslimit DumpPortsLimitCALL - DumpPortsMISC
pli $countdrivers CountDriversCALL - -
pli $vcsmemprof DMMemProfCALL DMMemProfCheck DMMemProfMISC

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

BIN
sim/simv.daidir/nsparam.dat Normal file

Binary file not shown.

BIN
sim/simv.daidir/pcc.sdb Normal file

Binary file not shown.

BIN
sim/simv.daidir/pcxpxmr.dat Normal file

Binary file not shown.

BIN
sim/simv.daidir/prof.sdb Normal file

Binary file not shown.

BIN
sim/simv.daidir/rmapats.dat Normal file

Binary file not shown.

BIN
sim/simv.daidir/rmapats.so Executable file

Binary file not shown.

View File

@@ -0,0 +1 @@
0

16
sim/simv.daidir/simv.kdb Normal file
View File

@@ -0,0 +1,16 @@
rc file Version 1.0
[Design]
COMPILE_PATH=/home/ICer/ic_prjs/IPA/sim
SystemC=FALSE
UUM=FALSE
KDB=FALSE
USE_NOVAS_HOME=FALSE
COSIM=FALSE
TOP=tb_data_cache
OPTION=-ssv -ssy
ELAB_OPTION=-ssv -ssy
[Value]
WREALX=ffff534e50535f58
WREALZ=ffff534e50535f5a

Binary file not shown.

BIN
sim/simv.daidir/tt.sdb Normal file

Binary file not shown.

4
sim/simv.daidir/vcs_rebuild Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh -e
# This file is automatically generated by VCS. Any changes you make
# to it will be overwritten the next time VCS is run.
vcs '-f' 'rtl.f' '-f' 'tb.f' '-timescale=1ns/1ps' '-full64' '-R' '+vc' '+v2k' '-sverilog' '-debug_access+all' 2>&1

View File

@@ -0,0 +1,673 @@
hsDirType 1
fHsimDesignHasDebugNodes 61
fNSParam 1024
fLargeSizeSdfTest 0
fHsimDelayGateMbme 0
fNoMergeDelays 0
fHsimAllMtmPat 0
fHsimCertRaptMode 0
fSharedMasterElab 0
hsimLevelizeDone 1
fHsimCompressDiag 1
fHsimPowerOpt 0
fLoopReportElab 0
fHsimRtl 0
fHsimCbkOptVec 1
fHsimDynamicCcnHeur 1
fHsimPvcs 0
fHsimPvcsCcn 0
fHsimOldLdr 0
fHsimSingleDB 1
uVfsGcLimit 50
fHsimCompatSched 0
fHsimCompatOrder 0
fHsimTransUsingdoMpd32 0
fHsimDynamicElabForGates 1
fHsimDynamicElabForVectors 0
fHsimDynamicElabForVectorsAlways 0
fHsimDynamicElabForVectorsMinputs 0
fHsimDeferForceSelTillReElab 0
fHsimModByModElab 1
fSvNettRealResType 0
fHsimExprID 1
fHsimSequdpon 0
fHsimDatapinOpt 0
fHsimExprPrune 0
fHsimMimoGate 0
fHsimNewChangeCheckFrankch 1
fHsimNoSched0Front 0
fHsimNoSched0FrontForMd 1
fHsimScalReg 0
fHsimNtbVl 0
fHsimICTimeStamp 0
fHsimICDiag 0
fHsimNewCSDF 1
vcselabIncrMode 2
fHsimMPPackDelay 0
fHsimMultDriver 0
fHsimPart 0
fHsimPrlComp 0
fHsimPartTest 0
fHsimTestChangeCheck 0
fHsimTestFlatNodeOrder 0
fHsimTestNState 0
fHsimPartDebug 0
fHsimPartFlags 0
fHsimOdeSched0 0
fHsimNewRootSig 1
fHsimDisableRootSigModeOpt 0
fHsimTestRootSigModeOpt 0
fHsimIncrWriteOnce 0
fHsimUnifInterfaceFlow 1
fHsimUnifInterfaceFlowDiag 0
fHsimUnifInterfaceFlowXmrDiag 0
fHsimUnifInterfaceMultiDrvChk 1
fHsimXVirForGenerateScope 0
fHsimCongruencyIntTestI 0
fHsimCongruencySVA 0
fHsimCongruencySVADbg 0
fHsimCongruencyLatchEdgeFix 0
fHsimCongruencyFlopEdgeFix 0
fHsimCongruencyXprop 0
fHsimCongruencyXpropFix 0
fHsimCongruencyXpropDbsEdge 0
fHsimCongruencyResetRecoveryDbs 0
fHsimCongruencyClockControlDiag 0
fHsimCongruencySampleUpdate 0
fHsimCongruencyFFDbsFix 0
fHsimCongruency 0
fHsimCongruencySlave 0
fHsimCongruencyCombinedLoads 0
fHsimCongruencyFGP 0
fHsimDeraceClockDataUdp 0
fHsimDeraceClockDataLERUpdate 0
fHsimCongruencyPC 0
fHsimCongruencyPCInl 0
fHsimCongruencyPCDbg 0
fHsimCongruencyPCNoReuse 0
fHsimCongruencyDumpHier 0
fHsimCongruencyResolution 0
fHsimCongruencyEveBus 0
fHsimHcExpr 0
fHsCgOptModOpt 0
fHsCgOptSlowProp 0
fHsimCcnOpt 1
fHsimCcnOpt2 1
fHsimCcnOpt3 0
fHsimSmdMap 0
fHsimSmdDiag 0
fHsimSmdSimProf 0
fHsimSgdDiag 0
fHsimRtDiagLite 0
fHsimRtDiagLiteCevent 100
fHsimRtDiag 0
fHsimSkRtDiag 0
fHsimDDBSRtdiag 0
fHsimDbg 0
fHsimCompWithGates 0
fHsimMdbDebugOpt 0
fHsimMdbDebugOptP1 0
fHsimMdbDebugOptP2 0
fHsimMdbPruneOpt 1
fHsimMdbMemOpt 0
hsimRandValue 0
fHsimSimMemProfile 0
fHsimSimTimeProfile 0
fHsimElabMemProfile 0
fHsimElabTimeProfile 0
fHsimElabMemNodesProfile 0
fHsimElabMemAllNodesProfile 0
fHsimDisableVpdGatesProfile 0
fHsimFileProfile 0
fHsimCountProfile 0
fHsimXmrDefault 1
fHsimFuseWireAndReg 0
fHsimFuseSelfDrvLogic 0
fHsimFuseProcess 0
fHsimAllXmrs 1
fHsimMvsimDb 0
fHsimTaskFuncXmrs 0
fHsimTaskFuncXmrsDbg 0
fHsimAllTaskFuncXmrs 0
fHsimPageArray 16383
fHsimPageControls 16383
hsDfsNodePageElems 0
hsNodePageElems 0
hsFlatNodePageElems 0
hsGateMapPageElems 0
hsGateOffsetPageElems 0
hsGateInputOffsetPageElems 0
hsDbsOffsetPageElems 0
hsMinPulseWidthPageElems 0
hsNodeUpPatternPageElems 0
hsNodeDownPatternPageElems 0
hsNodeUpOffsetPageElems 0
hsNodeEblkOffsetPageElems 0
hsNodeDownOffsetPageElems 0
hsNodeUpdateOffsetPageElems 0
hsSdfOffsetPageElems 0
fHsimPageAllLevelData 0
fHsimAggrCg 0
fHsimViWire 1
fHsimPcCbOpt 1
fHsimAmsTunneling 0
fHsimAmsTunnelingDiag 0
fHsimScUpwardXmrNoSplit 1
fHsimOrigNdbViewOnly 0
fHsimVcsInterface 1
fHsimVcsInterfaceAlias 1
fHsimSVTypesIntf 1
fUnifiedAssertCtrlDiag 0
fHsimEnable2StateScal 0
fHsimDisable2StateScalIbn 0
fHsimVcsInterfaceAliasDbg 0
fHsimVcsInterfaceDbg 0
fHsimVcsVirtIntfDbg 0
fHsimVcsAllIntfVarMem 0
fHsimCheckVIDynLoadOffsets 0
fHsimModInline 1
fHsimModInlineDbg 0
fHsimPCDrvLoadDbg 0
fHsimDrvChk 1
fHsimRtlProcessingNeeded 0
fHsimGrpByGrpElab 0
fHsimGrpByGrpElabMaster 0
fHsimNoParentSplitPC 0
fHsimNusymMode 0
fHsimOneIntfPart 0
fHsimCompressInSingleDb 2
fHsimCompressFlatDb 0
fHsimNoTime0Sched 1
fHsimMdbVectorizeInstances 0
fHsimMdbSplitGates 0
fHsimDeleteInstances 0
fHsimUserDeleteInstances 0
fHsimDeleteGdb 0
fHsimDeleteInstancesMdb 0
fHsimShortInstMap 0
fHsimMdbVectorizationDump 0
fHsimScanVectorize 0
fHsimParallelScanVectorize 0
noInstsInVectorization 0
cHsimNonReplicatedInstances 0
fHsimScanRaptor 0
fHsimConfigFileCount 0
fHsimVectorConstProp 0
fHsimPromoteParam 0
fHsimNoVecInRaptor 0
fRaptorDumpVal 0
fRaptorVecNodes 0
fRaptorVecNodes2 0
fRaptorNonVecNodes 0
fRaptorBdrNodes 0
fRaptorVecGates 0
fRaptorNonVecGates 0
fRaptorTotalNodesBeforeVect 0
fRaptorTotalGatesBeforeVect 0
fHsimCountRaptorBits 0
fHsimNewEvcd 1
fHsimNewEvcdMX 0
fHsimNewEvcdVecRoot 1
fHsimNewEvcdForce 1
fHsimNewEvcdTest 0
fHsimNewEvcdObnDrv 1
fHsimNewEvcdW 1
fHsimNewEvcdWTest 0
fHsimEvcdDbgFlags 0
fHsimDumpOffsetData 1
fFlopGlitchDetect 0
fHsimClkGlitch 0
fHsimGlitchDumpOnce 0
fHsimDynamicElab 1
fHsimCgVectors2Debug 0
fHsimOdeDynElab 0
fHsimOdeDynElabDiag 0
fHsimOdeSeqUdp 0
fHsimOdeSeqUdpXEdge 0
fHsimOdeSeqUdpDbg 0
fHsimOdeRmvSched0 0
fHsimAllLevelSame 0
fHsimRtlDbsList 0
fHsimPePort 0
fHsimPeXmr 0
fHsimPePortDiag 0
fHsimUdpDbs 0
fHsimRemoveDbgCaps 0
fFsdbGateOnepassTraverse 0
fHsimAllowVecGateInVpd 1
fHsimAllowAllVecGateInVpd 0
fHsimAllowUdpInVpd 1
fHsimAllowAlwaysCombInVpd 1
fHsimAllowAlwaysCombCmpDvcSimv 0
fHsimAllowAlwaysCombDbg 0
fHsimMakeAllP2SPrimary 0
fHsimMakeAllSeqPrimary 0
fHsimNoCcnDump 0
fHsimFsdbProfDiag 0
fVpdSeqGate 0
fVpdHsIntVecGate 0
fVpdHsCmplxVecGate 0
fVpdHsVecGateDiags 0
fSeqGateCodePatch 0
fVpdLongFaninOpt 0
fVpdSeqLongFaninOpt 0
fVpdNoLoopDetect 0
fVpdNoSeqLoopDetect 0
fVpdOptAllowConstDriver 0
fVpdAllowCellReconstruction 0
fVpdRtlForSharedLib 0
fHsimVpdOptGate 1
fHsimVpdOptDelay 0
fHsimVpdOptMPDelay 0
fHsimCbkOptDiag 0
fHsimSK 0
fHsimSharedKernel 1
fHsimOnepass 0
fHsimStitchNew 0
fHsimParallelLevelize 0
fHsimParallelLevelizeDbg 0
fHsimSeqUdpDbsByteArray 0
fHsimCoLocate 0
fHsimSeqUdpEblkOpt 0
fHsimSeqUdpEblkOptDiag 0
fHsimGateInputAndDbsOffsetsOpt 1
fHsimUdpDynElab 0
fHsimCompressData 4
fHsimIgnoreZForDfuse 1
fHsimIgnoreDifferentCaps 0
fHandleGlitchQC 1
fGlitchDetectForAllRtlLoads 0
fHsimFuseConstDriversOpt 1
fHsimIgnoreReElab 0
fHsimFuseMultiDrivers 0
fHsimNoSched0Reg 0
fHsimAmsFusionEnabled 0
fHsimRtlDbs 0
fHsimWakeupId 0
fHsimPassiveIbn 0
fHsimBcOpt 1
fHsimCertitude 0
fHsimCertRapAutoTest 0
fHsimRaceDetect 0
fCheckTcCond 0
fHsimScanOptRelaxDbg 0
fHsimScanOptRelaxDbgDynamic 0
fHsimScanOptRelaxDbgDynamicPli 0
fHsimScanOptRelaxDbgDiag 0
fHsimScanOptRelaxDbgDiagHi 0
fHsimScanOptNoErrorOnPliAccess 0
fHsimScanOptTiming 0
fRelaxIbnSchedCheck 0
fHsimScanOptNoDumpCombo 0
fHsimScanOptPrintSwitchState 0
fHsimScanOptSelectiveSwitchOn 0
fHsimScanOptSingleSEPliOpt 1
fHsimScanOptDesignHasDebugAccessOnly 0
fHsimScanOptPrintPcode 0
fHsimScanDbgPerf 0
fHsimNoStitchMap 0
fHsimUnifiedModName 0
fHsimCbkMemOptDebug 0
fHsimMasterModuleOnly 0
fHsimMdbOptimizeSelects 0
fHsimMdbScalarizePorts 0
fHsimMdbOptimizeSelectsHeuristic 1
fHsimMdb1006Partition 0
fHsimVectorPgate 0
fHsimNoHs 0
fHsimXmrPartition 0
fHsimNewPartition 0
fHsimElabPart 0
fHsimNewPartTHold 0
fHsimParitionCellInstNum 1000
fHsimParitionCellNodeNum 1000
fHsimParitionCellXMRNum 1000
fHsimNewPartCutSingleInstLimit 268435455
fHsimElabModDistNum 0
fHsimNewPartAutoUpperLimit 0
fHsimPCPortPartition 0
fHsimPortPartition 0
fHsimDumpMdb 0
fHsimElabDiag 0
fHsimSimpCollect 0
fHsimPcodeDiag 0
fHsimFastelab 0
fHsimMacroOpt 0
fHsimSkipOpt 0
fHsimSkipOptFanoutlimit 0
fHsimSkipOptRootlimit 0
fHsimFuseDelayChains 0
fFusempchainsFanoutlimit 0
fFusempchainsDiagCount 0
fHsimCgVectorGates 0
fHsimCgVectorGates1 0
fHsimCgVectorGates2 0
fHsimCgVectorGatesNoReElab 0
fHsimCgScalarGates 0
fHsimCgScalarGatesExpr 0
fHsimCgScalarGatesLut 0
fHsimCgRtl 1
fHsimCgRtlFilter 0
fHsimCgRtlDebug 0
fHsimCgRtlSize 15
fHsimNewCgRt 0
fHsimNewCgMPRt 0
fHsimNewCgMPRetain 0
fHsimCgRtlInfra 1
fHsimGlueOpt 0
fHsimPGatePatchOpt 0
fHsimCgNoPic 0
fHsimElabModCg 0
fPossibleNullChecks 0
fHsimProcessNoSplit 1
fHsimMdbOptInSchedDelta 0
fScaleTimeValue 0
fDebugTimeScale 0
fPartCompSDF 0
fHsimNbaGate 1
fDumpSDFBasedMod 1
fOptimisticNtcSolver 0
fHsimAllMtm 0
fHsimAllMtmPat 0
fHsimSdgOptEnable 0
fHsimSVTypesRefPorts 0
fHsimGrpByGrpElabIncr 0
fHsimMarkRefereeInVcsElab 0
fHsimStreamOpFix 1
fHsimInterface 0
fHsimMxWrapOpt 0
fHsimMxTopBdryOpt 0
fHsimClasses 0
fHsimAggressiveDce 0
fHsimDceDebug 1
fHsimDceDebugUseHeuristics 1
fHsimMdbNewDebugOpt 0
fHsimMdbNewDebugOptExitOnError 1
fHsimNewDebugOptMemDiag 0
hsGlobalVerboseLevel 0
fHsimMdbVectorConstProp 1
fHsimEnableSeqUdpWrite 1
fHsimDumpMDBOnlyForSeqUdp 0
fHsimInitRegRandom 0
fHsimInitRegRandomVcs 1
fEnableNewFinalStrHash 0
fEnableNewAssert 1
fRunDbgDmma 0
fAssrtCtrlSigChk 1
fCheckSigValidity 0
fUniqPriToAstRewrite 0
fUniqPriToAstCtrl 0
fAssertcontrolUniqPriNewImpl 0
fRTLoopDectEna 0
fCmplLoopDectEna 0
fHsimMopFlow 1
fUCaseLabelCtrl 0
fUniSolRtSvaEna 1
fUniSolSvaEna 1
fXpropRtCtrlCallerOnly 0
fHsimRaptorPart 0
fHsimEnableDbsMemOpt 1
fHsimDebugDbsMemOpt 0
fHsimRenPart 0
fHsimShortElabInsts 0
fHsimXmrAllWires 0
fHsimXmrDiag 0
fHsimXmrPort 0
fHsimFalcon 1
fHsimGenForProfile 0
fCompressSDF 0
fDlpSvtbExclElab 0
fHsimGates1209 0
fHsimCgRtlNoShareSmd 0
fHsimGenForErSum 0
fVpdOpt 1
fHsimMdbCell 0
fHsimCellDebug 0
fHsimNoPeekInMdbCell 0
igetOpcodeSmdPtrLayoutId -1
igetFieldSmdPtr -1
fDebugDump 1
fHsimOrigNodeNames 0
fHsimCgVectors2VOnly 0
fHsimMdbDeltaGate 0
fHsimMdbVecDeltaGate 1
fHsimVpdOptVfsDB 1
fHsimMdbPruneVpdGates 1
fHsimPcPe 0
fHsimVpdGateOnlyFlag 1
fHsimMxConnFrc 0
fHsimNewForceCbkVec 0
fHsimNewForceCbkVecDiag 0
fHsimMdbReplaceVpdHighConn 1
fHsimVpdOptSVTypes 1
fHsHasPeUpXmr 0
fHsimCompactVpdFn 1
fHsimPIP 0
fHsimRTLoopDectOrgName 0
fHsimVpdOptPC 0
fHsimFusePeXmrFo 0
fHsimXmrSched 0
fHsimNoMdg 0
fHsimVectorGates 0
fHsimRtlLite 0
fHsimMdbcgLut 0
fHsimMdbcgSelective 0
fHsimVcselabGates 0
fHsimMdbcgLevelize 0
fHsimParGateEvalMode 0
fHsimDFuseVectors 0
fHsimDFuseZero 0
fHsimDFuseOpt 1
fHsimPruneOpt 0
fHsimSeqUdpPruneWithConstInputs 0
fHsimSafeDFuse 0
fHsimVpdOptExpVec 0
fHsimVpdOptSelGate 1
fHsimVpdOptSkipFuncPorts 0
fHsimVpdOptAlways 1
fHsimVpdOptMdbCell 0
fHsimVpdOptPartialMdb 1
fHsimVpdOptPartitionGate 1
fHsimVpdOptXmr 1
fHsimVpdHilRtl 0
fHsimSWave 0
fHsimNoSched0InCell 1
fHsimPartialMdb 0
hsimPdbLargeOffsetThreshold 1048576
fHsimFlatCell 0
fHsimFlatCellLimit 0
fHsimRegBank 0
fHsimHmetisMaxPartSize 0
fHsimHmetisGateWt 0
fHsimHmetisUbFactor 0
fHsimHmetis 0
fHsimHmetisDiag 0
fHsimRenumGatesForMdbCell 0
fHsimHmetisMinPart 0
fHsim2stCell 0
fHsim2stCellMinSize 0
fHsimMdbcgDebug 0
fHsimMdbcgDebugLite 0
fHsimMdbcgDistrib 0
fHsimMdbcgSepmem 1
fHsimMdbcgObjDiag 0
fHsimMdbcg2stDiag 0
fHsimMdbcgRttrace 0
fHsimMdbVectorGateGroup 1
fHsimMdbProcDfuse 1
fHsimMdbHilPrune 0
fHsCgOpt 1
fHsCgOptUdp 1
fHsCgOptRtl 1
fHsCgOptDiag 0
fHsCgOptAggr 0
fHsCgOptNoZCheck 0
fHsCgOptEnableZSupport 0
fHsCgOpt4StateInfra 0
fHsCgOptUdpChkDataForWakeup 1
fHsCgOptXprop 0
fHsimMdbcgDiag 0
fHsCgMaxInputs 6
fHsCgOptFwdPass 1
fHsimHpnodes 0
fLightDump 0
fHDLCosim 0
fHDLCosimDebug 0
fHDLCosimTimeCoupled 0
fHDLCosimTimeCoupledPorts 0
HDLCosimMaxDataPerDpi 1
HDLCosimMaxCallsPerDpi 2147483647
fHDLCosimCompileDUT 0
fHDLCosimCustomCompile 0
fHDLCosimBoundaryAnalysis 0
fVpdBeforeScan 1
fHsCgOptMiSched0 0
fgcAddSched0 0
fParamClassOptRtDiag 0
fHsRegress 0
fHsBenchmark 0
fHsimCgScalarVerilogForce 1
fVcsElabToRoot 1
fHilIbnObnCallByName 0
fHsimMdbcgCellPartition 0
fHsimCompressVpdSig 0
fHsimLowPowerOpt 0
fHsimUdpOpt 1
fHsVecOneld 0
fNativeVpdDebug 0
fHsimVcsGenTLS 1
fAssertSuccDebugLevelDump 0
fHsimMinputsChangeCheck 0
fHsimClkLayout 0
fHsimIslandLayout 0
fHsimConfigSched0 0
fHsimSelectFuseAfterDfuse 0
fHsimFoldedCell 0
fHsimSWaveEmul 0
fHsimSWaveDumpMDB 0
fHsimSWaveDumpFlatData 0
fHsimRenumberAlias 0
fHsimAliasRenumbered 0
fHilCgMode 115
fHsimUnionOpt 0
fHsimFuseSGDBoundaryNodes 0
fHsimRemoveCapsVec 0
fHsimCertRaptScal 0
fHsimCertRaptMdbClock 0
fHsCgOptMux 0
fHsCgOptFrc 0
fHsCgOpt30 0
fHsLpNoCapsOpt 0
fHsCgOpt4State 1
fSkipStrChangeOnDelay 1
fHsimTcheckOpt 0
fHsCgOptMuxMClk 0
fHsCgOptMuxFrc 0
fHsCgOptNoPcb 0
fHsCgOptMin1 0
fHsCgOptUdpChk 0
fHsChkXForSlowSigProp 1
fHsimVcsParallelDbg 0
fHsimVcsParallelStrategy 0
fHsimVcsParallelOpt 0
fHsimVcsParallelSubLevel 4
fHsimParallelEblk 0
fHsimByteCodeParts 1
fFgpNovlInComp 0
fFutEventPRL 0
fFgpNbaDelay 0
fHsimDbsFlagsByteArray 0
fHsimDbsFlagsByteArrayTC 0
fHsimDbsFlagsThreadArray 0
fHsimGateEdgeEventSched 0
fHsimEgschedDynelab 0
fHsimUdpClkDynelab 0
fUdpLayoutOnClk 0
fDbsPreCheck 0
fHsimSched0Analysis 0
fHsimMultiDriverSched0 0
fHsimLargeIbnSched 0
fFgpHierarchical 0
fFgpHierAllElabModAsRoot 0
fFgpHierPCElabModAsRoot 0
fFgpAdjustDataLevelOfLatch 1
fHsimUdpXedgeEval 0
fFgpRaceCheck 0
fFgpUnifyClk 0
fFgpSmallClkTree 0
fFgpSmallRtlClkTree 4
fFgpNoRtlUnlink 0
fFgpNoRtlAuxLevel 0
fFgpNumPartitions 8
fFgpMultiSocketCompile 0
fFgpDataDepOn 0
fFgpDDIgnore 0
fFgpTbCbOn 0
fFgpTbEvOn 1
fFgpTbNoVSA 0
fFgpTbEvXmr 0
fFgpDisabledLevel 512
fFgpSched0User 0
fFgpNoSdDelayedNbas 1
fFgpTimingFlags 0
fFgpSched0Level 0
fHsimFgpMultiClock 0
fFgpScanOptFix 0
fFgpSched0UdpData 0
fFgpDepositDiag 0
fFgpEvtDiag.diagOn 0
fFgpEvtDiag.printAllNodes 0
fFgpMangleDiagLog 0
fFgpMultiExclDiag 0
fFgpSingleExclReason 0
fHsDoFaninFanoutSanity 0
fHsFgpNonDbsOva 1
fFgpParallelTask 1
fFgpIbnSched 0
fFgpIbnSchedOpt 0
fFgpIbnSchedThreshold 0
fFgpIbnSchedDyn 0
fFgpMpStateByte 0
fFgpTcStateByte 0
fHsimVirtIntfDynLoadSched 0
fFgpNoRtimeFgp 0
fHsFgpGlSched0 0
fFgpExclReason 0
fHsimIslandByIslandElab 0
fHsimIslandByIslandFlat 151652416
fHsimIslandByIslandFlat1 4
fHsimVpdIBIF 0
fHsimXmrIBIF 0
fHsimReportTime 0
fHsimElabJ 0
hf_fHsimElabJ 0
fHsimElabJOpt 0
fHsimSchedMinput 0
fHsimSchedSeqPrim 0
fHsimSchedSelectFanout 0
fHsimSchedSelectFanoutDebug 0
fSpecifyInDesign 0
fFgpDynamicReadOn 0
fHsCgOptAllUc 0
fHsimXmrRepl 0
fZoix 0
fHsimDfuseNewOpt 0
fHsimBfuseNewOpt 0
fFgpXmrSched 0
fHsimClearClkCaps 0
fHsimDiagClkConfig 0
fHsimDiagClkConfigDebug 0
fHsimDiagClkConfigDumpAll 0
fHsDiagClkConfigPara 0
fHsimDiagClkConfigAn 0
fHsimCanDumpClkConfig 0
fFgpInitRout 0
fFgpIgnoreExclSD 0
fHsCgOptNoClockFusing 0
fHsClkWheelLimit 50000
fHsimPCSharedLibSpecified 0
fHsFgpSchedCgUcLoads 1
fHsCgOptNewSelCheck 1
fFgpReportUnsafeFuncs 0
fHsCgOptUncPrlThreshold 4
fHsimLowPowerRetAnalysisInChild 0

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
vcselab_misc_midd.db 749
vcselab_misc_mnmn.db 26
vcselab_misc_hsim_name.db 217

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More