计算机使用智能体分类English
R02.06.01.02 · 任务小类

RTL设计与验证

RTL design & verification

Write Verilog/SystemVerilog and testbenches that pass simulation and synthesis checks.

20 条本项目编写的提案 · 分类 v1.1 · 新增基准运行 0 次。下方验证方式与部分得分规则是设计,不是执行结果。

典型应用
Icarus Verilog · Verilator · Yosys · Vivado
小类 GUI 需求标签
CL · CLI 足够

任务提案 · 20

展开查看完整原文与建议检查方式;两种界面均保留提案英文原文。

R02.06.01.02-T01 Implement a parameterized synchronous FIFO with almost-full flags

原始指令

Write rtl/sync_fifo.sv: parameters WIDTH and DEPTH (power of two), single clock, active-low synchronous reset, push/pop with full, empty, almost_full (DEPTH-2) and almost_empty (2) flags, and a count output. Simultaneous push and pop when full must pop and push in the same cycle.

平台
lin · Linux mac · macOS
应用
Icarus Verilog · Verilator
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
2 / 5

建议验证方式

Hidden testbench (Icarus and Verilator, 3 parameter sets) runs 20k random push/pop cycles against a Python reference model via cocotb: zero mismatches on data and flags. Verilator --lint-only -Wall clean.

建议部分得分

50% data ordering; 30% flags and count; 10% full push+pop; 10% lint clean

R02.06.01.02-T02 Build a UART transmitter and receiver with 16x oversampling

原始指令

Implement rtl/uart.sv with a parameterized clock and baud (default 50 MHz, 115200), 8N1, 16x oversampled RX with mid-bit sampling and framing-error flag, and a TX with busy signal. Provide a cocotb test in tb/test_uart.py covering back-to-back bytes.

平台
lin · Linux mac · macOS
应用
Icarus Verilog · cocotb
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Hidden cocotb suite: loopback of 1,000 random bytes at 3 baud rates; RX tolerates ±2% baud mismatch; framing error asserted on bad stop bit; TX bit period within 1 clock of ideal. Agent's own test must pass.

建议部分得分

30% TX timing; 40% RX with baud tolerance; 15% framing error; 15% agent test passes

R02.06.01.02-T03 Find and fix an AXI4-Lite handshake bug from a failing waveform

原始指令

rtl/axil_regs.sv fails the provided tb/axil_tb.sv: writes occasionally drop when AWVALID and WVALID arrive in different cycles. Read sim/fail.vcd, fix the slave so it accepts address and data in any order without deadlock, and keep register map behavior.

平台
lin · Linux mac · macOS
应用
Icarus Verilog · GTKWave
交互表面
term · 终端 desk · 桌面 GUI
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令 vis · 视觉判断
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Hidden AXI-Lite VIP (cocotbext-axi) runs 5k randomized transactions with independent AW/W/B/AR/R backpressure: zero lost writes, no protocol-check violations, registers read back correctly. Diff limited to axil_regs.sv.

建议部分得分

50% randomized transactions pass; 30% protocol checker clean; 20% register map unchanged

R02.06.01.02-T04 Prove a round-robin arbiter's fairness with SystemVerilog assertions

原始指令

For rtl/rr_arbiter.sv (4 requesters), write formal/rr_props.sv with assertions for one-hot grant, grant only to requesters, and starvation-freedom (a held request is granted within 4 cycles). Prove them with SymbiYosys and fix any bug the proof finds.

平台
lin · Linux
应用
SymbiYosys · Yosys
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
4 / 5

建议验证方式

Grader runs sby on agent properties: all PASS in prove mode. Hidden property set (including a liveness bound) is also proven against the fixed RTL. Mutation check: properties must fail on 4 seeded buggy arbiter variants.

建议部分得分

30% agent properties proven; 30% hidden properties pass; 40% mutation kill rate (4 variants)

R02.06.01.02-T05 Design an asynchronous FIFO with Gray-code pointers

原始指令

Implement rtl/async_fifo.sv (WIDTH, DEPTH=2^N) with independent write and read clocks, Gray-coded pointers, two-flop synchronizers and correct full/empty generation. Simulate with unrelated clock ratios and check CDC structure.

平台
lin · Linux mac · macOS
应用
Verilator · Icarus Verilog · Yosys
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
4 / 5

建议验证方式

Hidden cocotb test with 6 clock ratios (incl. 1:7 and 7:1) and random enables: no data loss/duplication over 50k words; full/empty never false-negative. Yosys-based structural check: every crossing goes through a 2-flop synchronizer of Gray-coded pointers.

建议部分得分

50% data integrity across ratios; 20% flag correctness; 30% CDC structure check

R02.06.01.02-T06 Write a self-checking ALU testbench that catches seeded bugs

原始指令

Write tb/alu_tb.sv with constrained-random stimulus, a reference model and functional coverage for rtl/alu.sv (16 ops, flags). The testbench must pass on the golden ALU and report coverage of all ops × flag outcomes.

平台
lin · Linux mac · macOS
应用
Icarus Verilog · Verilator
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader runs the testbench against the golden ALU (must pass, coverage report lists 100% op×flag bins) and 12 hidden mutants (must fail on ≥11). Runtime ≤60 s per run.

建议部分得分

20% passes on golden; 20% coverage complete; 60% mutants detected (5 pts each)

R02.06.01.02-T07 Fit a design into an iCE40 LUT budget at 48 MHz

原始指令

rtl/pixel_pipe.v synthesizes to 910 LUTs on iCE40UP5K and closes at 31 MHz. Reduce it to ≤600 LUTs and Fmax ≥48 MHz with Yosys and nextpnr-ice40 while staying cycle-accurate to the original at the ports, except for added pipeline latency documented in output/latency.txt.

平台
lin · Linux mac · macOS
应用
Yosys · nextpnr
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
4 / 5

建议验证方式

Grader runs yosys synth_ice40 + nextpnr (fixed seed): LUT count ≤600, Fmax ≥48 MHz. Hidden testbench compares output streams with the original shifted by the declared latency: identical for 100k pixels.

建议部分得分

35% LUT target; 35% Fmax target; 30% functional equivalence with declared latency

R02.06.01.02-T08 Close timing on an Artix-7 design in Vivado

原始指令

Vivado project fixtures/fir_a7 (xc7a35t, 200 MHz clock) has WNS of -1.8 ns. Use the timing report and schematic views to find the critical paths, add pipelining or retiming, and re-implement until WNS ≥0 with no hold violations. Save the timing summary to output/timing.rpt.

平台
win · Windows lin · Linux
应用
Vivado
交互表面
desk · 桌面 GUI term · 终端
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
click · 指向与点击 vis · 视觉判断 code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
licensed · 授权专业软件 long · 长流程
提案难度
5 / 5

建议验证方式

Grader re-runs synth+impl in batch from the agent's project: WNS ≥0, WHS ≥0, no unconstrained paths, no timing-relaxing constraints added (XDC diff limited to original). Behavioral testbench vs reference FIR output identical after latency alignment.

建议部分得分

40% WNS ≥0; 15% hold clean; 15% no constraint cheating; 30% functional equivalence

R02.06.01.02-T09 Implement a vending-machine FSM from a written spec

原始指令

Implement rtl/vend_fsm.sv from spec/vending.md: coins 5/10/25, item price 35, change returned in fewest coins, cancel returns inserted total. Use an enumerated-state Moore machine.

平台
lin · Linux mac · macOS
应用
Icarus Verilog
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
2 / 5

建议验证方式

Hidden testbench runs all coin sequences up to length 6 plus cancels against a Python model: outputs identical every cycle. Verilator lint clean; states declared as enum.

建议部分得分

70% sequence equivalence; 20% change minimal; 10% lint and enum

R02.06.01.02-T10 Clean a legacy core of all Verilator lint warnings

原始指令

Make rtl/legacy_dsp/ (11 Verilog files) pass 'verilator --lint-only -Wall' with zero warnings and no lint_off pragmas, without changing behavior.

平台
lin · Linux mac · macOS
应用
Verilator · Yosys
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
2 / 5

建议验证方式

Grader runs Verilator -Wall: zero warnings; grep rejects lint_off and waiver files. Yosys equiv_make/equiv_simple + equiv_induct between original and edited design proves equivalence for all modules.

建议部分得分

50% zero warnings; 10% no pragmas; 40% formal equivalence

R02.06.01.02-T11 Add forwarding and stall logic to a 5-stage RV32I pipeline

原始指令

rtl/rv32i_core/ is a 5-stage pipeline with no hazard handling. Add EX/MEM and MEM/WB forwarding, load-use stalls and branch flushes so riscv-tests rv32ui pass, then report CPI on the provided CoreMark build.

平台
lin · Linux
应用
Verilator · riscv-gnu-toolchain
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
long · 长流程
提案难度
5 / 5

建议验证方式

Grader runs all 39 rv32ui-p tests in Verilator: pass count. CoreMark run completes with a valid checksum and CPI ≤1.35 (no forwarding baseline 1.9). output/cpi.txt within 1% of measured.

建议部分得分

60% rv32ui pass rate; 25% CoreMark CPI target; 15% CPI reported correctly

R02.06.01.02-T12 Write an SPI master supporting all four modes

原始指令

Implement rtl/spi_master.sv with CPOL/CPHA mode select, configurable clock divider, 8–32-bit transfers, and chip-select hold. Verify against the provided SPI slave model in tb/.

平台
lin · Linux mac · macOS
应用
Icarus Verilog · cocotb
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Hidden cocotb test: for each of 4 modes and 3 widths, 200 random transfers to the slave model; MOSI/MISO data exact and SCLK edges match mode timing (sample/shift edges). CS stays low for the whole transfer.

建议部分得分

60% data across modes; 25% edge timing; 15% CS behavior

R02.06.01.02-T13 Implement a 16-tap fixed-point FIR matching a Python golden model

原始指令

Implement rtl/fir16.sv: Q1.15 input, coefficients from data/coeffs.txt, full-precision accumulation, rounding to Q1.15 with saturation, one sample per clock throughput. Match the golden outputs from model/fir_golden.py.

平台
lin · Linux mac · macOS
应用
Verilator · Python
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader feeds 3 hidden stimulus files (impulse, chirp, full-scale noise): outputs within ±1 LSB of golden for all samples, saturation exact on overflow cases; throughput 1 sample/clk after latency.

建议部分得分

20% impulse response; 50% chirp+noise within 1 LSB; 20% saturation; 10% throughput

R02.06.01.02-T14 Translate a VHDL CRC module to SystemVerilog with equivalence

原始指令

Translate rtl/vhdl/crc32_stream.vhd into rtl/crc32_stream.sv preserving ports, reset behavior and latency, using idiomatic SystemVerilog. Show equivalence with the original.

平台
lin · Linux
应用
Yosys · GHDL · Icarus Verilog
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader uses Yosys + ghdl-yosys-plugin equivalence checking (equiv_induct) on both designs: proven equivalent. Also 10k random-stream co-simulation identical. File contains no VHDL-isms (lint).

建议部分得分

60% formal equivalence; 30% co-simulation; 10% lint clean

R02.06.01.02-T15 Pinpoint the first divergence in two waveforms

原始指令

sim/golden.vcd and sim/dut.vcd come from the same test on two revisions of a DMA engine. Using a waveform viewer (GTKWave or Surfer), find the first clock cycle where any top-level output differs, the signal, and the internal register that caused it. Write output/divergence.json with {cycle, signal, root_cause_signal}.

平台
lin · Linux mac · macOS win · Windows
应用
GTKWave · Surfer
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
vis · 视觉判断 nav · 平移 / 缩放 / 滚动
工作产物
WP12 · 答案 / 决策
条件
未声明
提案难度
3 / 5

建议验证方式

Exact match on cycle and signal; root_cause_signal must equal the seeded bug register. A VCD-diff script could find the cycle, so the root-cause field (requires tracing internal fan-in) carries most weight.

建议部分得分

30% cycle; 20% output signal; 50% root-cause register

R02.06.01.02-T16 Assemble a Zynq block design with AXI GPIO and UART Lite

原始指令

In Vivado IP Integrator, create a block design for the Zynq-7020 board fixture: PS7 with DDR and FIXED_IO, AXI GPIO (8 LEDs, 4 switches), AXI UART Lite at 115200, address map per input/addrmap.csv, run Validate Design, generate the wrapper and bitstream, and export the XSA.

平台
win · Windows lin · Linux
应用
Vivado
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
drag · 拖放 click · 指向与点击
工作产物
WP06 · 代码 / 工程
条件
licensed · 授权专业软件
提案难度
4 / 5

建议验证方式

Grader opens the .bd via vivado -mode batch: required IP present with parameters, interconnect connections, address segments exactly as CSV; validate_bd_design clean; bitstream and XSA exist with matching hash of the hardware handoff.

建议部分得分

30% IP and parameters; 30% connections; 25% address map; 15% bitstream/XSA

R02.06.01.02-T17 Add pulse and handshake synchronizers across clock domains

原始指令

rtl/ctrl_top.sv passes single-cycle pulses and a 16-bit config bus from a 100 MHz domain to a 27 MHz domain unsynchronized. Add a toggle-based pulse synchronizer and a req/ack handshake for the bus, keeping the interface unchanged.

平台
lin · Linux mac · macOS
应用
Verilator · Yosys
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Hidden simulation with jittered clocks: every pulse arrives exactly once, bus values never torn (checked at each ack). Structural CDC script finds no unsynchronized crossings.

建议部分得分

40% pulse delivery; 40% bus integrity; 20% structural CDC clean

R02.06.01.02-T18 Reach full functional coverage on a packet parser with cocotb

原始指令

Write a cocotb testbench (tb/test_parser.py) with constrained-random packets, a scoreboard and cocotb-coverage bins for rtl/pkt_parser.sv (Ethernet/VLAN/IPv4/IPv6/UDP/TCP combinations, bad checksums, truncated frames). Reach 100% of the bins defined in spec/coverage_plan.md.

平台
lin · Linux
应用
cocotb · Verilator
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
4 / 5

建议验证方式

Grader runs the testbench: coverage XML must hit 100% of the plan's 64 bins; passes on golden RTL; fails on ≥5 of 6 hidden mutants; runtime ≤5 min.

建议部分得分

40% coverage; 20% passes golden; 40% mutant detection

R02.06.01.02-T19 Cut flip-flop count by 30% without changing behavior

原始指令

rtl/stats_unit.sv uses 1,240 flip-flops. Reduce it to ≤870 while keeping cycle-accurate port behavior, by sharing registers and removing redundant pipeline state.

平台
lin · Linux
应用
Yosys · SymbiYosys
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Yosys stat after synth: DFF count ≤870. Sequential equivalence proven with a SymbiYosys miter (bounded 40 cycles + induction) between original and new design.

建议部分得分

50% DFF target (linear credit from 1,240); 50% equivalence proof

R02.06.01.02-T20 Fix an SDRAM controller's refresh timing violation

原始指令

rtl/sdram_ctrl/ fails long simulations with the Micron MT48LC16M16 model reporting tRFC and refresh-interval violations under heavy traffic. Diagnose with the model warnings and waveforms, fix refresh scheduling and command timing, and sustain ≥80% bus utilization.

平台
lin · Linux mac · macOS
应用
Icarus Verilog · GTKWave
交互表面
term · 终端 desk · 桌面 GUI
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令 vis · 视觉判断
工作产物
WP06 · 代码 / 工程
条件
long · 长流程
提案难度
5 / 5

建议验证方式

Grader runs a hidden 20 ms traffic simulation with the vendor model: zero timing warnings (tRFC, tRP, tRCD, 8192 refreshes/64 ms), data integrity on all reads, utilization ≥80% computed from command trace.

建议部分得分

40% no timing violations; 30% data integrity; 30% utilization target

已有研究映射

以下沿用研究目录中的基准与小类映射,不是逐题标注、执行记录或产品背书。

同工作流族的小类