You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器下基于Cocotb生成CSV文件的代码适配咨询

Ubuntu服务器环境适配Cocotb生成CSV文件的步骤

一、环境准备

  • 确保Ubuntu服务器已安装Python3及pip,执行命令:
    sudo apt update && sudo apt install python3 python3-pip -y
    
  • 安装所需依赖包:
    pip3 install cocotb pandas pyuvm
    

二、代码适配修改

原代码依赖Google Colab的Drive挂载功能,在Ubuntu环境下需删除该逻辑,同时修正缩进错误(原代码缩进不规范会导致运行报错),修改后的代码如下:

import cocotb
from cocotb.triggers import Timer
import random
import pyuvm
import pandas as pd
import os

# 自定义CSV保存目录,可按需修改
SAVE_DIR = "./alu_test_data"
os.makedirs(SAVE_DIR, exist_ok=True)

@cocotb.test()
async def CODE_AA(dut):
    listA = []
    listB = []
    listC = []
    ALU_CONTROL = ['00', '01', '10', '11']

    for i in range(10):
        A = random.randint(0, 1000)
        listA.append(A)
        await Timer(20, units="ns")
        print(f"生成A值: {A}")
        
        B = random.randint(0, 1000)
        listB.append(B)
        await Timer(20, units="ns")
        print(f"生成B值: {B}")
        
        listC.append(random.choice(ALU_CONTROL))
        print(f"当前ALU操作码列表: {listC}")
    
    # 构造数据并保存为CSV
    data_dict = {'A': listA, 'B': listB, 'C': listC}
    df = pd.DataFrame(data_dict)
    print("生成的测试数据:")
    print(df)
    
    csv_path = os.path.join(SAVE_DIR, "basic_py.csv")
    df.to_csv(csv_path, index=False)
    print(f"CSV文件已保存至: {csv_path}")

三、关键修改说明

  • 删除了Google Colab专属的Drive挂载及路径切换代码,替换为本地自定义保存目录
  • 修正了原代码中for循环、await语句的缩进错误(Cocotb异步函数内代码必须严格缩进)
  • 优化了打印信息,明确提示文件保存路径
  • 添加目录自动创建逻辑,避免因目录不存在导致保存失败

四、运行验证

  1. 将修改后的代码保存为alu_test.py
  2. 准备好对应Verilog/VHDL DUT(若仅需生成测试数据,可简化为无硬件交互的模拟运行)
  3. 执行Cocotb运行命令(示例):
    MODULE=alu_test SIM=icarus make
    
  4. 运行完成后,在./alu_test_data目录下即可找到生成的basic_py.csv文件

内容的提问来源于stack exchange,提问作者Pakistan Railways PR 28

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:41:32