Text Generation
PEFT
Safetensors
English
lora
qwen2.5-coder
verilog
eda
dft
partial-scan
reinforcement-learning
grpo
conversational
Instructions to use SKLP-EDA-LAB/Tesla-Pro-PSS with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use SKLP-EDA-LAB/Tesla-Pro-PSS with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-Coder-7B-Instruct") model = PeftModel.from_pretrained(base_model, "SKLP-EDA-LAB/Tesla-Pro-PSS") - Notebooks
- Google Colab
- Kaggle
| [ | |
| { | |
| "role": "system", | |
| "content": "Respond in the following format:\n\n<think>\n...\n</think>\n<answer>\n...\n</answer>" | |
| }, | |
| { | |
| "role": "user", | |
| "content": "You are a DFT engineer specializing in partial scan design. Analyze the RTL code and select register bits as scan cells using budgeted allocation. Track your remaining budget after each selection. Select exactly 1 bits.\n\nRules:\n- Only select bits from reg variables within their declared width\n- Wire variables cannot be scan cells\n- Select only state-holding variables assigned in edge-triggered clocked always blocks\n- Do not select input ports, clocks, resets, wires, constants, parameters, localparams, integers, genvars, or combinational/next-state temporary signals\n- An output is selectable only when it is a real clocked state-holding variable\n- Copy every selected name exactly from the RTL; never invent, rename, abbreviate, or add/remove suffixes\n- For a vector, select explicit in-range bits such as state[2]; do not output a slice or a whole multi-bit vector name\n- If a candidate is uncertain, skip it and choose another clearly clocked state-holding bit\n- Use format 'RegisterName[bit_index]' for multi-bit registers\n- Use 'RegisterName' for single-bit registers\n- The final answer must be placed in <answer> tags after </think>\n- Answer must contain exactly 1 lines (one register bit per line) in the <answer> section\n\nPlace your step-by-step reasoning with budget tracking between <think> and </think>.\nKey requirements:\n- Start with budget: 'I have 1 bits to allocate'\n- Allocation strategy (choose based on the number of bits to select):\n * For small selections (<=20 bits): Select bits one by one or in very small groups (<=5), stating the running budget after every single addition\n * For large selections (>20 bits): You may group selections into logical categories (e.g., FSM state bits, counters, synchronizers, data-path registers). For each group, first justify the group, then list the exact bits in that group. After every group, immediately state: 'This group contributes X bits. Current total: N/1, remaining budget: M'. When the remaining budget <=12, switch back to selecting one bit at a time with per-bit justification and running count\n- Track budget after each selection or group: 'Allocate X bits to RegisterName[bit], remaining Y bits' or 'This group contributes X bits. Current total: N/1, remaining budget: M'\n- Focus on BIT-LEVEL selection: Explain why specific bits (e.g., Volume[3]) were chosen, not just register names\n- Do NOT enumerate all registers upfront. Mention registers only as you allocate them\n- Never repeat allocations. If repeating patterns appear, STOP and verify budget\n- If budget becomes negative, you must immediately stop and re-select fewer bits. Do NOT continue repeating the same selection\n- Verify at the end: 'Total = 1 bits; budget = 0'\n- Before writing <answer>, extract exactly 1 register bits from your reasoning that match your budget tracking. The <answer> section must contain exactly 1 lines, one register bit per line.\n\n#QUESTION#: Which 1 register bits were selected as the most suitable scan cells?\n#RTL CODE#:\nmodule gen_sync ( input clock,input reset,input enable,input [7:0] rate,output wire sync );\n \n reg [7:0] counter; \n assign sync = |(((rate+1)>>1)& counter); \n always @(posedge clock) \n if(reset || ~enable) \n counter <= #1 0; \n else if(counter == rate) \n counter <= #1 0; \n else \n counter <= #1 counter + 8'd1; \n endmodule" | |
| } | |
| ] | |