system-verilog

    5热度

    2回答

    是否有任何可合成的方式将接口传递给函数或任务?我的用例如下:我有一个包含几个函数的包(尽管我可以将它们转换为任务,如果有帮助:)),所有这些都可能用于模块中,可能需要访问模块的端口。现在,通常我只将interface中的所有端口分组,并将其添加到模块中,并将其作为virtual传递给该函数。但是,我的综合工具手册提到virtual不支持。 我错过了什么?必须有办法为合成任务提供端口,类似于VHDL

    1热度

    1回答

    我正在关注http://verificationguild.com/modules.php?name=Forums&file=viewtopic&p=5019以检查特定信号的周期。 该方法完美地工作,但在仿真结束时,如果断言被posedge(活动边)踢,它基本上失败,因为没有下一个边。 请考虑以下示例:测试平台时钟在2MHz下运行,更新时钟(我已声明写入)在5Hz(周期200ms)下运行以进行特定

    1热度

    2回答

    我收到错误消息。我将我的记分牌的vip_export端口(这是一个分析端口)连接到我的usb代理的观察端口connect_phase。我甚至在记分牌的新阶段新增vip_export。 我得到这个UVM_INFO,我不能理解。 UVM_INFO /h/tool_linux/synopsys/vcs/2012.09/etc/uvm-1.1/base/uvm_resource_db.svh(129) @

    -1热度

    1回答

    我对维拉很陌生并试图理解语法。 4b'和32'代表什么?这是否像4位和32位? 我很困惑,不得不在相关的事情上工作。 另一个问题是位[31:0]是什么意思?这是否意味着位31和0的任何内容? Thnks

    3热度

    2回答

    有没有连接两个模块端口而没有实例化新线路的方法? 小例子: module comparator(max,min,in0,in1); input[7:0] in0,in1; output[7:0] max,min; wire[7:0] in0; wire[7:0] in1; wire[7:0] max; wire[7:0] min;

    -1热度

    1回答

    ...基本上试图模仿在实际芯片中会发生什么,其中硬件与时钟速率无关,并且我们有一个时钟发生器,用于控制时钟频率各种组件,例如对于2GHz时钟源,您可以每隔2个周期将信号传播到处理器,工作频率为1 GHz,对于500 MHz工作频率,每4个周期到NoC

    -1热度

    2回答

    我有这样的SV代码: module m1 (input int a); always begin #1; force a=a+1; end endmodule module m(); int a; m1 m1(a); endmodule 是在上面的代码本声明有效force a=a+1;?

    0热度

    2回答

    我正在尝试将C函数导入System verilog测试工作台。 C函数的代码如下所示。我想传递文件作为参数。该功能基本上从一个文件读取并写入另一个文件。 int readmem(int z, FILE *file1, FILE *file2) { char data; int x; int i; for(i = 0; i<z;i ++) {

    1热度

    4回答

    我有一个用Verilog编写的程序,我想自动将它转换成FSM。这是可能的(只是想象它)? 下面是代码: module pci(reset,clk,frame,irdy,trdy,devsel,idsel,ad,cbe,par,stop,inta,led_out); input reset; input clk; input frame; input irdy

    3热度

    2回答

    我正在实现一个浮点标准化单元,我想知道如何有效地实现一个前导零计数器? 我知道我可以写下面的,但我不知道是否有更好的方法,如果我定位的是低区和高能源效率?: always @(mantissa) begin case(mantissa) 25'b1????????????????????????: newmant = mantissa[24:1]; 25'b01???