在库事务履历(TRANSACTION)能追溯到电脑名吗?

本文讨论了在生产实绩输入系统中因相似料号导致的责任追溯问题。当前系统仅记录USERID,无法直接追溯到具体操作电脑。文章探讨了实现追溯至特定电脑的方法,并询问社区是否有类似经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有个问题请教大家:
在生产现场作生产实绩输入系统的时候,用户名都是一样的.
但现在有一个问题是有的部门间的料号非常相似,会产生错误
输入的问题,由于USERID是一样的,无法区分责任.如果要
区分责任,必须要能追溯到电脑名,但现在我们的TRANSACTION
只能查到USERID,不能查到具体操作的电脑名?

1.各位所见识过的系统中,是否有能追溯到电脑名的?
2.从开发的角度来说应该怎么做?
64.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12391917/viewspace-247731/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12391917/viewspace-247731/

内容概要:本文详细介绍了900W或1Kw,20V-90V 10A双管正激可调电源充电机的研发过程和技术细节。首先阐述了项目背景,强调了充电机在电动汽车和可再生能源领域的重要地位。接着深入探讨了硬件设计方面,包括PCB设计、磁性器件的选择及其对高功率因数的影响。随后介绍了软件实现,特别是程序代码中关键的保护功能如过流保护的具体实现方法。此外,文中还提到了充电机所具备的各种保护机制,如短路保护、欠压保护、电池反接保护、过流保护和过温度保护,确保设备的安全性和可靠性。通讯功能方面,支持RS232隔离通讯,采用自定义协议实现远程监控和控制。最后讨论了散热设计的重要性,以及为满足量产需求所做的准备工作,包括提供详细的PCB图、程序代码、BOM清单、磁性器件和散热片规格书等源文件。 适合人群:从事电力电子产品研发的技术人员,尤其是关注电动汽车充电解决方案的专业人士。 使用场景及目标:适用于需要高效、可靠充电解决方案的企业和个人开发者,旨在帮助他们快速理解和应用双管正激充电机的设计理念和技术要点,从而加速产品开发进程。 其他说明:本文不仅涵盖了理论知识,还包括具体的工程实践案例,对于想要深入了解充电机内部构造和工作原理的人来说是非常有价值的参考资料。
在UVM(Universal Verification Methodology)中,处理复杂的事务并将其传递到测试中涉及几个关键步骤。UVM是一种用于设计和实现复杂硬件验证环境的验证方法学,它建立在SystemVerilog语言之上。以下是在UVM的sequence中处理复杂事务并传递到测试中的基本步骤: 1. 定义事务Transaction)类:首先需要定义一个事务类,它继承自`uvm_sequence_item`。在这个类中定义所有事务的参数和方法。例如,如果事务是一个数据包,可能包括地址、数据和控制信号等字段。 ```systemverilog class my_transaction extends uvm_sequence_item; rand bit [31:0] address; rand bit [31:0] data; rand bit write_enable; // Constraints, methods and other definitions... function new(string name = "my_transaction"); super.new(name); endfunction endclass ``` 2. 创建序列(Sequence)类:定义一个序列类,继承自`uvm_sequence`。在这个类中,你可以创建事务实例,并定义如何生成这些事务。可以使用`start_item`和`finish_item`方法来发送事务到驱动程序(driver)。 ```systemverilog class my_sequence extends uvm_sequence #(my_transaction); `uvm_object_utils(my_sequence) virtual task body(); my_transaction tr; forever begin tr = my_transaction::type_id::create("tr"); start_item(tr); if (!tr.randomize()) `uvm_error("RAND FAIL", "Failed to randomize transaction") finish_item(tr); end endtask endclass ``` 3. 驱动事务:在驱动程序中,需要处理从序列接收到的事务,并将其转换为硬件接口上的信号。 ```systemverilog class my_driver extends uvm_driver #(my_transaction); // Implement the driver's tasks to process transactions... endclass ``` 4. 在测试(Test)中启动序列:在测试类中,启动序列实例,并将驱动程序连接到序列。 ```systemverilog class my_test extends uvm_test; `uvm_component_utils(my_test) my_driver driver; my_sequence seq; virtual function void build_phase(uvm_phase phase); super.build_phase(phase); driver = my_driver::type_id::create("driver", this); seq = my_sequence::type_id::create("seq"); endfunction virtual task run_phase(uvm_phase phase); phase.raise_objection(this); seq.start(driver); phase.drop_objection(this); endtask endclass ``` 以上步骤描述了如何在UVM环境中处理复杂的事务。为了将这些事务传递到测试中,需要在测试阶段启动序列,并且驱动程序需要能够接收这些事务并将其应用于DUT(Device Under Test)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值