Memeriksa, mengevaluasi, dan menghasilkan RTL dengan XLS native
Periksa DSLX atau XLS IR, evaluasi vektor, optimalkan IR, hasilkan SystemVerilog, dan simpan hasil tugas lokal.
Gunakan Altifigence CLI 0.1.9 di Linux untuk bekerja dengan fungsi DSLX dan XLS IR inline. Mulai dengan alti xls capabilities untuk membaca operasi yang didukung runner terinstal. Contoh ini memilih backend CPU.
Mengevaluasi fungsi
Simpan permintaan ini sebagai eval.json. Nilai input mengikuti urutan parameter fungsi.
{
"schema": "altifigence.xls.operation-request.v1",
"operation": "eval",
"input_kind": "dslx",
"source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
"top": "compute",
"backend": "cpu",
"vectors": [
[
"255",
"1"
],
[
"0x10",
"0b11"
]
]
}alti xls eval --request eval.jsonHasil memiliki status "succeeded" dan output berikut:
["bits[8]:0x0","bits[8]:0x13"]Jumlah pertama melingkar sesuai lebar 8 bit fungsi. Hasil mencakup permintaan, lebar parameter, serta digest sumber dan permintaan. Permintaan native menerima fungsi 1–64 bit dan hingga 256 vektor. Batasi sumber inline hingga 8192 byte dan permintaan hingga 16384 byte.
Memeriksa dan mengoptimalkan
Salin eval.json ke check.json. Atur operation ke "check" dan vectors ke []. Simpan salinan kedua sebagai optimize.json dengan operation "optimize" dan vectors [].
alti xls check --request check.json
alti xls optimize --request optimize.json > optimized.jsonCheck mengembalikan informasi fungsi yang telah diurai. Optimize melakukan pelipatan konstanta dan menghapus node murni yang tidak digunakan. Baca compilation.ir dan compilation.ir_top untuk IR yang dioptimalkan dan titik masuknya. Untuk mengevaluasinya, masukkan nilai tersebut ke permintaan baru dengan input_kind "xls-ir".
Menghasilkan SystemVerilog
Simpan permintaan ini sebagai codegen.json:
{
"schema": "altifigence.xls.operation-request.v1",
"operation": "codegen",
"input_kind": "dslx",
"source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
"top": "compute",
"backend": "cpu",
"vectors": [],
"pipeline": {
"stages": 2
}
}alti xls codegen --request codegen.json > generated.jsonBaca compilation.system_verilog untuk RTL dan compilation.rtl_top untuk modul teratasnya. Permintaan ini menghasilkan xls_pipeline dengan latency_cycles 2 dan interface "synchronous-reset-valid-delay". Pilih 1 hingga 16 tahap register output. Untuk RTL kombinasional, hilangkan pipeline; modul teratasnya adalah xls_top.
Menjalankan tugas lokal dan membuka kembali hasilnya
Simpan permintaan tugas CPU lengkap ini sebagai job.json. Digest-nya mengikat permintaan XLS yang disertakan.
{
"schema": "altifigence.xls.job-request.v1",
"job": {
"schema": "altifigence.engine.job.v1",
"job_id": "xls-example",
"operation": {
"engine_id": "xls-engine",
"operation_id": "eval",
"contract_id": "altifigence.xls.operation-request.v1"
},
"execution_placement": "local",
"device_preference": {
"selection": {
"mode": "class",
"value": "cpu"
},
"fallback": "deny"
},
"resources": {
"cpu_slots": 1,
"memory_bytes": 1048576,
"device_slots": 0,
"device_memory_bytes": 0,
"max_wall_time_ms": 30000
},
"inputs": [
{
"artifact_id": "request",
"role": "xls-request",
"artifact_schema": "altifigence.xls.operation-request.v1",
"uri": "workspace://inputs/request.json",
"sha256": "fea82ea569518661ed34f31da0a1bd3df7387bd7d4b33e6c171a605bfe547325"
}
],
"cancellation": {
"cancellation_id": "xls-example-cancel"
}
},
"request": {
"schema": "altifigence.xls.operation-request.v1",
"operation": "eval",
"input_kind": "dslx",
"source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
"top": "compute",
"backend": "cpu",
"vectors": [
[
"255",
"1"
],
[
"0x10",
"0b11"
]
]
}
}alti xls run --project /home/me/design --request job.jsonHasil yang berhasil mencakup result.status "succeeded", artefak, dan referensinya di result.outputs. Salin artifact_id-nya ke ARTIFACT_ID untuk membuka kembali dan memutar ulang hasil:
alti xls artifact show --project /home/me/design ARTIFACT_IDUntuk permintaan operasi langsung, Anda juga dapat menyimpan dan melihat daftar hasil dengan:
alti xls artifact store --project /home/me/design --request eval.json
alti xls artifact list --project /home/me/designMemperbaiki permintaan
Untuk input 8 bit, "256" menghasilkan invalid-input. Ganti dengan pola bit dalam rentang, seperti "255", lalu coba lagi. Untuk "command and request operation differ", atur operation JSON sesuai perintah yang dijalankan. Check, optimize, dan codegen menggunakan vectors []; evaluasi berisi setidaknya satu vektor.
Untuk "XLS request digest differs", perbarui SHA-256 input tugas agar sesuai dengan serialisasi JSON UTF-8 ringkas dari permintaan yang disertakan dengan urutan kolom berikut: schema, operation, input_kind, source, top, backend, vectors, lalu pipeline jika disertakan. Jalankan kembali tugas yang telah diperbaiki.
Tugas dengan deadline_unix_ms opsional yang sudah lewat mengembalikan cancelled dengan kode keluar 3. Gunakan tenggat di masa depan atau hilangkan tenggat opsional sebelum mencoba lagi.