小编Sre*_* TJ的帖子

在 System Verilog 中检测时间刻度

如何从源代码中检测模拟中使用的时间刻度精度?考虑我有一个配置参数(cfg_delay_i),由用户以时间单位给出的一些延迟值作为fs。如果用户给出1000,我的代码在进一步执行之前必须等待1000fs 或 1ps

#(cfg_delay_i * 1fs );//will wait only if timescale is 1ps/1fs
do_something(); 
Run Code Online (Sandbox Code Playgroud)

如果时间刻度精度为1fs,则不会有任何问题,但如果精度高于该精度,则不会等待,它将作为0 delay工作。所以我想编写一个代码来确定用户使用的时间刻度并相应地给出延迟。我预期的伪代码如下所示,

if(timeprecision == 1fs )#(cfg_delay_i * 1fs ) ; 
else if(timeprecision == 1ps )#(cfg_delay_i/1000 * 1ps ) ;
Run Code Online (Sandbox Code Playgroud)

请帮助我确定内部时间刻度单位和精度的逻辑。

modelsim system-verilog uvm system-verilog-dpi

6
推荐指数
1
解决办法
1169
查看次数

Perl中的位选择

我们如何在perl代码中位选择变量?

我是perl的新手,我有一个场景,我需要从文件中提取特定格式并将输入提供给另一个模块进行分析。

目前,我已经提取了16位十六进制所需的模式。现在从这个16位的十六进制格式,我只希望LSB 10位。请参考下面的示例(这是一个示例代码,其中我仅使用了我的要求的一行)

use strict;
my $string = "HDR 0c0d PlD 1000 GAP 412";
$string =~ s/.*HDR\s(\S+).*/$1/g;
print "$string\n";
my $hex = hex($string);
print "$hex"; 
Run Code Online (Sandbox Code Playgroud)

的输出$hex是3095,现在是16位, 16’b0011000010000101我只需要提取LSB 10 0010000101),请让我知道一些简单的方法。

perl

2
推荐指数
1
解决办法
66
查看次数

标签 统计

modelsim ×1

perl ×1

system-verilog ×1

system-verilog-dpi ×1

uvm ×1