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异步函数内代码必须严格缩进) - 优化了打印信息,明确提示文件保存路径
- 添加目录自动创建逻辑,避免因目录不存在导致保存失败
四、运行验证
- 将修改后的代码保存为
alu_test.py - 准备好对应Verilog/VHDL DUT(若仅需生成测试数据,可简化为无硬件交互的模拟运行)
- 执行Cocotb运行命令(示例):
MODULE=alu_test SIM=icarus make - 运行完成后,在
./alu_test_data目录下即可找到生成的basic_py.csv文件
内容的提问来源于stack exchange,提问作者Pakistan Railways PR 28
相关产品推荐
相关产品推荐

