标签: vhdl

硬件描述语言的最佳实践是什么(Verilog,VHDL等)

在实施HDL代码时应该遵循哪些最佳实践?

与更常见的软件开发领域相比,有哪些共性和差异?

verilog vhdl hdl

69
推荐指数
6
解决办法
2万
查看次数

使用Kansas Lava对RTL块中的同一寄存器进行多次分配

当一个RTL块包含对同一个寄存器的多个赋值时,我无法理解Kansas Lava的行为.这是版本号1:

foo :: (Clock c) => Signal clk Bool
foo = runRTL $ do
    r <- newReg True
    r := low    
    return $ var r
Run Code Online (Sandbox Code Playgroud)

这表现得像我预期的那样:

*Main> takeS 10 foo :: Seq Bool
low | low | low | low | low | low | low | low | low | low | ? .
Run Code Online (Sandbox Code Playgroud)

生成的VHDL是:

architecture str of assignments is
  signal sig_2_o0 : std_logic;
begin
  sig_2_o0 <= '0';
  OUTPUT <= sig_2_o0;
end architecture str; …
Run Code Online (Sandbox Code Playgroud)

haskell lava vhdl

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

clk'event vs rising_edge()

我一直用它来检测上升沿:

if (clk'event and clk='1') then

但这也可以使用:

if rising_edge(clk) then

建议阅读这篇文章,rising_edge(clk)但也有一条评论表明这rising_edge(clk)可能导致错误的行为.

我无法决定选择哪一个,继续(clk'event and clk='1')或采用rising_edge(clk).

对这两个人有任何真实的经历吗?有偏好吗?

谢谢!

vhdl

36
推荐指数
3
解决办法
11万
查看次数

vsim在Windows上不接受-modelsimini参数

我正在使用命令行参数为大多数QuestaSim/ModelSim可执行文件-modelsimini <modelsim.ini>指定我自己的modelsim.ini文件.

这适用于Linux for vcom和Windows vsim,以及适用vcom于Windows.但Windows vsim中止并抛出错误:

C:\Mentor\QuestaSim64\10.4c\win64\vsim.exe -do "do D:/git/PoC/sim/vSim.batch.tcl" -c -modelsimini D:\git\PoC\temp\precompiled\vsim\modelsim.ini -error 3473 -t 1fs test.arith_prng_tb
Reading C:/Mentor/QuestaSim64/10.4c/tcl/vsim/pref.tcl

# 10.4c

# ** Error: (vsim-7) Failed to open -modelsimini file "{D:\git\PoC\temp\precompiled\vsim\modelsim.ini}" in read mode.
#
# Invalid argument. (errno = EINVAL)
# Error loading design
Error loading design
# Errors: 1, Warnings: 0
Run Code Online (Sandbox Code Playgroud)

这些modelsim.ini文件存在并具有以下内容:

[Library]
others = $MODEL_TECH/../modelsim.ini
Run Code Online (Sandbox Code Playgroud)

(如果供应商工具添加其库映射,则此文件将包含更多行.)

如何将自己的modelsim.ini配置文件传递给vsim.exe

vhdl modelsim questasim

34
推荐指数
2
解决办法
2342
查看次数

VHDL变量Vs. 信号

我一直在阅读关于VHDL编程的文本(不要在前面,所以不能给出标题).我从文本中很难理解的一个问题是何时使用变量与信号.我想我已经清楚地了解何时使用信号(内部信号),而不是变量.

我注意到文本通常在定义一个进程之前声明并初始化信号,而一个变量在一个进程内被声明(我猜它从未初始化..).

无论如何要清除它,无论是定义还是示例都会很棒!

vhdl

33
推荐指数
3
解决办法
9万
查看次数

测试驱动开发(TDD)的经验,用于Verilog或VHDL中的逻辑(芯片)设计

我在网上看过,讨论/例子似乎是传统的软件开发.由于Verilog和VHDL(用于芯片设计,例如FPGA和ASIC)类似于软件开发C和C++,因此它似乎是有意义的.但是,它们之间存在一些差异,这些差异基本上是并行的,需要硬件才能进

你有什么经历,无论好坏?您可以在此特定应用程序上建议的任何链接?

编辑/澄清:2009年10月28日:我特别询问TDD.我熟悉测试台,包括自检台.我也知道SystemVerilog具有测试平台的一些特殊功能.

10/28/09:隐含的问题包括:1)为任何功能编写测试,从不使用波形进行模拟,2)首先编写测试/测试平台.

11/29/09:在实证研究中显示测试驱动开发提高了他们为(软件)TDD报告的质量 "四种产品的预发布缺陷密度,以每千行代码的缺陷来衡量,在40%到90%之间下降相对于未使用TDD的项目.团队管理层主动报告使用TDD的团队的初始开发时间增加了15-35%,尽管团队同意这可以通过降低维护成本来抵消.减少的错误降低了流片带来的风险,但却以适度的时间表影响为代价. 也有一些数据.

11/29/09:我主要做控制和数据路径代码,而不是DSP代码.对于DSP,典型的解决方案涉及Matlab位精确仿真.

03/02/10:TDD的优势在于确保测试首先失败.我想这也可以用断言来完成.

simulation tdd verilog fpga vhdl

31
推荐指数
3
解决办法
4684
查看次数

学习VHDL的最佳方法是什么?

我想学习VHDL,但我真的不知道从哪里开始.

我想要一些关于我开始使用的软件的建议和解释.

我还想获得一些参考资料,以便有效地学习它而不用浪费时间在互联网上搜索,因为有很多电子书和教程,我真的很困惑选择哪一个.

vhdl

29
推荐指数
3
解决办法
6万
查看次数

专业的VHDL IDE?

是否有一个很好的IDE来使用VHDL项目?或者大多数专业人士使用emacs/vim/notepad ++?

ide vhdl

27
推荐指数
7
解决办法
3万
查看次数

VHDL/Verilog相关的编程论坛?

使用VHDL或Verilog进行硬件设计更像是现在的编程.但是,我看到SO成员并没有那么积极地谈论VHDL/Verilog编程.

有没有关于使用Verilog/VHDL/SystemVerilog或SystemC处理硬件设计的论坛?

verilog vhdl system-verilog systemc

25
推荐指数
2
解决办法
8229
查看次数

何时必须将信号插入到过程的灵敏度列表中

当架构中声明的信号必须插入到进程的敏感列表中时,我感到很困惑.

在任何情况下都可以遵循一般法律吗?

当我必须在过程灵敏度列表中包含信号时,我真的很难理解.

process vhdl

22
推荐指数
2
解决办法
6万
查看次数

标签 统计

vhdl ×10

verilog ×3

fpga ×1

haskell ×1

hdl ×1

ide ×1

lava ×1

modelsim ×1

process ×1

questasim ×1

simulation ×1

system-verilog ×1

systemc ×1

tdd ×1