小编dmm*_*dmm的帖子

与0或1比较,检测高阻抗

我知道,它不允许有比较XZ在一个综合的VHDL代码.但它是否允许编写一个代码,在其中我将信号与信号进行比较01检测Z并暂停操作?代码如下:

process(clk)
begin
  if rising_edge(clk ) then
    if(rst = '0') then
      reg_0 <= (others => 'Z');
    elsif(btf_start = '1') then
      reg_0 <= "ZZ" & frame_in;
    elsif(t_btf_finish = '1') then
      reg_0 <= (others => 'Z');
    end if;
  end if;  
end process;

process(clk)
begin
  if rising_edge(clk) then
    if(reg_0(0) = '0' or reg_0(0) = '1') then
        -- DO SOME OPERATIONS
    else
        -- DO NOTHING
    end if;
  end if;
end process; 
Run Code Online (Sandbox Code Playgroud)

vhdl

3
推荐指数
1
解决办法
251
查看次数

从组合块输出驱动模块

  1. 使用组合逻辑在VHDL/Verilog中驱动模块的输出是一种很好的设计实践吗?

  2. 是否可以直接在组合块中使用模块输入,并使用该组合块的输出来驱动同一模块中的另一个顺序块?

verilog vhdl system-verilog

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

将字符串值传递给SystemVerilog参数

我在将字符串值传递给SystemVerilog中的泛型参数时遇到问题.模块实例化如下所示.内存将一些值写入FILE_OUT,这是一个通用参数.我需要为不同的内存实例生成两个不同的文件 - "file1.txt"和"file2.txt".

最初我尝试使用`define指令:

if(ch_ID==1)
  `define FILE_OUT file1.txt
else
  `define FILE_OUT file2.txt 
Run Code Online (Sandbox Code Playgroud)

但是,由于`define创建了全局宏,因此模拟总是给出输出"file2.txt"

然后我尝试将文件名作为参数传递

if(ch_ID==1)
  parameter FILE_OUT= "file1.txt"
else
  parameter FILE_OUT= "file2.txt"

memory #(.FILE_OUT (FILE_OUT)) mem
Run Code Online (Sandbox Code Playgroud)

这给了我错误 - "FILE_OUT"应该是一个常数值".

SV不支持字符串值作为参数吗?如果没有,为什么我在使用时接受字符串值`define

有人可以帮我解决这个问题吗?

在此输入图像描述

verilog system-verilog

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

标签 统计

system-verilog ×2

verilog ×2

vhdl ×2