# Dataset

### Overview

ForgeEDA includes diverse circuit representations such as Register Transfer Level (RTL) code, Post- mapping (PM) netlists, And-Inverter Graphs (AIGs), and placed netlists, enabling comprehensive analysis and development.

<figure><img src="https://204291402-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpjfvyQt0RAeOzMVWp4g%2Fuploads%2FDosGvgGr4eHcNM8xWyse%2Fimage.png?alt=media&#x26;token=1ebe7b29-cff5-48b3-b260-c074dd512d82" alt=""><figcaption></figcaption></figure>

### RTL Code Repository

We use the RTL code repositories in DeepCircuitX.&#x20;

[#rtl-code](https://zeju.gitbook.io/lcm-team/deepcircuitx/other-modality-information#rtl-code "mention")

```
`timescale 1ns / 1ps

module alu(
    input [31:0] Operand1,
    input [31:0] Operand2,
    input [3:0] OPCODE,
    output reg [31:0] result
    );

	always@(*) begin

    case(OPCODE)
    4'b0000:
	result = Operand1 + Operand2;//ALU_Addition
    4'b0001:
	result = Operand1 - Operand2;//ALU_Substraction
    4'b0010:
	result = Operand1 * Operand2;//ALU_Multiplication
    4'b0011:
	result = Operand1 & Operand2;//ALU_AND
    4'b0100:
	result = Operand1 | Operand2;//ALU_OR
    4'b0110:
	result = Operand1 ^ Operand2;//ALU_XOR
    4'b0111:
	result = !Operand1;//ALU_NOT
    4'b1000:
	result = Operand1 << 1;//ALU_Left_Shift
	4'b1001:
	result = Operand1 >> 1;//ALU_right_Shift
	default:
	result = 32'b0;
    endcase
    end



endmodule
```

### Post-Mapping Netlist

We employ Synopsys Design Compiler ® and 12nm Process Design Kit (PDK) to synthesize RTL code repositories into post-mapped (PM) netlists, along with detailed synthesis reports.

[#post-mapping-netlist](https://zeju.gitbook.io/lcm-team/deepcircuitx/other-modality-information#post-mapping-netlist "mention")

````
```verilog
module alu ();
input OPCODE[0], OPCODE[1], OPCODE[2], OPCODE[3], Operand1[0], Operand1[10], Operand1[11], Operand1[12], Operand1[13], Operand1[14], Operand1[15], Operand1[16], Operand1[17], Operand1[18], Operand1[19], Operand1[1], Operand1[20], Operand1[21], Operand1[22], Operand1[23], Operand1[24], Operand1[25], Operand1[26], Operand1[27], Operand1[28], Operand1[29], Operand1[2], Operand1[30], Operand1[31], Operand1[3], Operand1[4], Operand1[5], Operand1[6], Operand1[7], Operand1[8], Operand1[9], Operand2[0], Operand2[10], Operand2[11], Operand2[12], Operand2[13], Operand2[14], Operand2[15], Operand2[16], Operand2[17], Operand2[18], Operand2[19], Operand2[1], Operand2[20], Operand2[21], Operand2[22], Operand2[23], Operand2[24], Operand2[25], Operand2[26], Operand2[27], Operand2[28], Operand2[29], Operand2[2], Operand2[30], Operand2[31], Operand2[3], Operand2[4], Operand2[5], Operand2[6], Operand2[7], Operand2[8], Operand2[9], ;
output U4474, U4486, U4498, U4510, U4522, U4534, U4546, U4558, U4851, U5091, U5108, U5326, U5531, U5736, U5928, U6118, U6295, U6470, U6630, U6798, U6945, U6958, U7109, U7245, U7408, U7547, U7681, U7800, U7917, U8019, U8121, U8531, ;
sky130_fd_sc_hd__nor2_2 U4472_Cell ( .A(U8535), .B(U4473), .Y(U4472) );
sky130_fd_sc_hd__nor2_4 U4473_Cell ( .A(U8535), .B(U8584), .Y(U4473) );
...
sky130_fd_sc_hd__clkinv_1 U8585_Cell ( .A(U8586), .Y(U8585) );
sky130_fd_sc_hd__nand3_1 U8586_Cell ( .A(OPCODE[0]), .B(U8587), .C(OPCODE[1]), .Y(U8586) );
sky130_fd_sc_hd__nor2_1 U8587_Cell ( .A(OPCODE[3]), .B(OPCODE[2]), .Y(U8587) );
endmodule

```
````

### Placed Netlist

We utilize Cadence Innovus ® to carry out the floorplanning and placement steps in the ASIC physical design flow.&#x20;

The placed netlists will be released soon.&#x20;

### And-Inverter Graph (AIG)

We begin by converting PM netlists, based on the standard cell library in the PDK, into And-Inverter Graphs (AIGs) using the ABC tool.&#x20;

{% file src="<https://204291402-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpjfvyQt0RAeOzMVWp4g%2Fuploads%2FUjSZJFzYJtfhstEHu01j%2Falu.aig?alt=media&token=37a4ecef-0a3d-4b85-b8dd-8d14927209e2>" %}

### Sub-AIG

We also provide the sub-AIGs for model training, which are randomly extracted sub-circuits with 500- 5,000 nodes.&#x20;

{% file src="<https://204291402-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpjfvyQt0RAeOzMVWp4g%2Fuploads%2FnvaXKKwkE9LS3IAOUawL%2Falu_0.aig?alt=media&token=6a2d504b-1e3b-4335-9688-e28de9560963>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://zeju.gitbook.io/lcm-team/forgeeda/dataset.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
