适用于下降/上升沿的时间

时间:2015-10-01 15:52:40

标签: vhdl modelsim

有没有办法确定(在modelsim中)信号需要从低 - 高(上升)/高 - 低(下降)边沿的时间。 例如,为了模拟更高级,我想在单个信号clk(例如1ns)上定义从低到高的时间。

有办法吗?

2 个答案:

答案 0 :(得分:0)

不确定这对时钟有多好。

但是你可以分配像

这样的信号
Sig_A <= 'X', '1' after 1 ns;

然后,nownow + 1 ns之间的任何信号采样都将返回'X',以便您在模拟中捕获错误。

综合应该简单地将此分配视为

Sig_A <= '1';

虽然可能会发出警告,但您可以放心地忽略。

但是请注意,如果您使用上面的Sig_A作为时钟,那么时钟边缘将在其第二个转换(即now + 1 ns)处看到,而不是引入任何时序不确定性,因此我的小心。

如果需要使用可变时钟时序模拟性能,您可能需要做的是在包中引入泛型或常量,例如

entity TB is
generic (T_clkH : time := 1 ns)
end TB;
...
    Clk <= '1' after T_clkH;

并运行模拟两次,为通用提供最小值和最大值。

答案 1 :(得分:0)

我通常在模拟中使用它。

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM users";
$conn->exec($sql);

$results = $conn->fetchAll();
print_r($results);
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}

请记住初始化您的信号。

clk <= not clk after 1 ns;