Questions tagged «vhdl»

VHDL(VHSIC(超高速集成电路)硬件描述语言)是一种硬件描述语言,用于电子设计自动化中,用于描述和设计数字系统,例如现场可编程门阵列和集成电路。

2
综合工具如何合成VHDL变量
我知道通过综合工具综合VHDL变量的两种方式: 变量合成为组合逻辑 变量被无意地合成为锁存器(将未初始化的变量分配给信号或另一个变量时) VHDL变量可以通过哪些其他方式合成?(例如:可以解释为FF吗?)
9 vhdl  synthesis  rtl 

4
何时在VHDL中通过BIT使用STD_LOGIC
使用之间有什么区别: ENTITY MyDemo is PORT(X: IN STD_LOGIC; F: OUT STD_LOGIC ); END MyDemo; 和 ENTITY MyDemo is PORT(X: IN BIT; F: OUT BIT ); END MyDemo; 在STD_LOGIC上使用BIT有什么限制,反之亦然?他们完全可以互换吗?我知道,如果定义了STD_LOGIC,则无法将其与BIT_Vector一起使用来访问数组中的元素。但我似乎看不出有什么区别。
9 vhdl 

1
用合成的ROM内核模拟一个简单的测试台
我对FPGA领域是一个全新的领域,并认为我将从一个非常简单的项目开始:一个4位7段解码器。我纯粹用VHDL编写的第一个版本(基本上是单个组合select,不需要时钟),并且似乎可以使用,但我也想尝试使用Xilinx ISE中的“ IP内核”功能。 因此,现在我正在使用“ ISE Project Explorer” GUI,并使用ROM内核创建了一个新项目。生成的VHDL代码为: LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off LIBRARY XilinxCoreLib; -- synthesis translate_on ENTITY SSROM IS PORT ( clka : IN STD_LOGIC; addra : IN STD_LOGIC_VECTOR(3 DOWNTO 0); douta : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END SSROM; ARCHITECTURE SSROM_a OF SSROM IS -- …

4
如何避免合成期间的闩锁
我想使用VHDL设计一个组合逻辑块,但有时合成结果包含一个无意的锁存器。 为了避免合成器推断锁存器,我需要遵循哪些编码准则? 示例:在一小段代码中,我应该使用if-else语句吗?
9 vhdl 

4
SystemC与HDL
我目前正在参与一个大学项目,以实现现有指令集的处理器。这个想法是,到项目结束时,我应该能够综合该设计并在FPGA中运行它。到目前为止,一切进展顺利,几天前,我开始在Verilog HDL中实施该设计,并且有了一个非常简单的版本。现在的问题是:我与一些从事硬件设计工作的人取得了联系,他们建议在继续之前,我应该转向使用SystemC进行实施。现在,让我非常困惑,因为这是我的想法: Verilog->作为一种HDL语言,专门针对硬件设计。具有结构和行为Verilog之类的某些抽象级别,但是它是指定设计的RTL的非常简洁的形式。绝对可以根据您选择的FPGA使用一堆工具对其进行综合(在我的情况下,我使用的是Xilinx Vivado 2014和Zynq板)。不利的一面是普通的Verilog没有提供足够的抽象来进行验证,这就是为什么您拥有诸如System Verilog之类的东西的原因。 SystemC->这是一个C ++类库,可以有效地引入C ++中的时间概念,并允许您进行事件驱动的仿真。显然,它比任何HDL都高级得多,并且这里的事情可以更快地实现。这使其成为用于诸如验证甚至实现模拟器之类的东西的非常好的工具,以便人们可以在实际制造东西之前就开始为芯片设计驱动程序和东西。显然,还有一个可综合的SystemC子集(我认为甚至Xilinx Vivado都可以做到这一点),并且在某些情况下,它使SystemC可以用于设计非常方便抽象的大型系统。 因此,我的问题是: 这些有关systemC和Verilog(或HDL语言,如果您喜欢的话)的概念正确吗? 什么时候应该使用SystemC?什么时候需要Verilog? 有人告诉我,即使在Verilog中,在实现的关键部分使用很多行为代码也可能会有些问题,因为从本质上讲,您对如何综合它的综合工具的约束要少得多。在较高的抽象水平下会不会有问题?即如果我使用systemC,我可能会得到非常慢,耗电,大型设计的结果。 建议SystemC的人提到,好像我在进行“体系结构探索”,这就是为什么他更喜欢Verilog。这到底是什么意思呢?我给人的印象是,体系结构通常是指指令集,而微体系结构是指指令集的实现(因此,微体系结构是执行指令的实际rtl)。那么架构探索是否意味着他认为我正在实现处理器以查看指令集的可行性? 他说,使用SystemC的一个论据是它使用起来容易得多,因为它比HDL具有更高的抽象级别。他还声称,更容易确定正确的设计时间。这在多大程度上是正确的? 非常感谢您的帮助,我有点困惑,发现很难在线获得有关此信息的明确信息。谢谢!
9 verilog  vhdl  design  hdl  systemc 

3
如何从Verilog生成原理图框图图像文件?
我想创建一个特定的Verilog模块层次结构的示意图,以显示哪些块连接到哪些其他块。与Novas / Springsoft的Debussy / Verdi nschema工具非常相似,或者与许多提供RTL图形设计浏览器的EDA工具一样。 哪些工具区域可用于从verilog或vhdl定义或从其他一些基于文本的输入格式以编程方式绘制原理图?
9 vhdl  verilog 


1
什么时候比APB总线更好的选择AXI4Lite?
我正在努力改进和清理具有64位数据总线的已经运行的大型FPGA设计。出现的问题之一是, “我们应该将所有总线转换为AXI4Lite / APB,还是应该保持原样?” 有些是AXI4Lite,有些是APB。 AXI4Lite小组的成员认为,许多第三方FPGA IP模块都使用AXI总线。相反,同事建议APB总线使用的资源可能更少(FF和LUT),尽管我无法证实这一点。 我站在一个人的身边,坚持下去。 有什么理由选择一个?是否有一种情况下,一辆公共汽车可能需要比另一辆公共汽车更多的资源?是否有充分的理由要迁移到另一个?

1
为什么移位寄存器的这种简单VHDL模式无法按预期工作
乍一看,您会期望下面的VHDL源代码充当移位寄存器。在那个q中,随着时间的流逝, "UUUU0", "UUU00", "UU000", "U0000", "00000", .... 但是它总是U在五个(或更多)连续时钟周期之后。 为什么是这样? 该代码实际上是复杂得多的模拟的简化版本。但这证明了我看到的症状。 它在ModelSim和ActiveHDL下的仿真过程中都显示出这一有趣且出乎意料的结果,我没有尝试过其他仿真器,并且(第二个原因的解释)想知道其他程序是否以相同的方式运行。 要正确回答此问题,您必须了解: 我知道这不是实现移位寄存器的最佳方法 我知道对于RTL综合,应该重新设置。 我知道std_logic的数组是std_logic_vector。 我知道聚合运算符&。 我还发现了: 如果将分配temp(0)<='0';移到流程中,则它将起作用。 如果循环已展开(请参见注释的代码),则它将起作用。 我要重申的是,这是一个更为复杂的设计(用于流水线CPU)的非常简化的版本,被配置为纯粹显示意外的仿真结果。实际信号类型只是一种简化。因此,您必须按照原样考虑代码中的答案。 我的猜测是,VHDL仿真引擎的优化器错误地(或按照规范)没有费心地在循环内运行表达式,因为没有外部变化的信号,尽管我可以通过将展开的循环置于循环中来证明这一点。 因此,我希望这个问题的答案更多地与模糊VHDL语法的VHDL仿真标准以及VHDL仿真引擎如何进行优化有关,而不是是否给出代码示例是完成某件事的最佳方法。 现在我要模拟的代码: library ieee; use ieee.std_logic_1164.all; entity test_simple is port ( clk : in std_logic; q : out std_logic ); end entity; architecture example of test_simple is type t_temp …

2
FPGA VGA缓冲器。如何读写?
我有一个Altera DE2开发板,正在尝试绘制精灵。我在实现屏幕缓冲区时遇到了一些麻烦。 我有一个显示实体,它以25 MHZ的速率输出用于VGA显示的像素。 我希望在SDRAM中实现一个缓冲区。最初的想法是从SDRAM以25 MHZ的速率将像素加载到下一个像素。这行得通,但我无法以这种速率将像素写入SDRAM,也无法为每个新帧足够快地清除屏幕。我需要2个时钟来写入数据,而且我的电路板工作在50 MHZ,所以我有足够的时间进行完整的读取。 我想我做的事情非常可怕,非常错误。在VHDL中通常如何实现这样的绘图画布? 我能找到的最接近的东西是使用2-3-3(RGB)配色方案来检索每个像素,并在“门廊”(空白)VGA时间期间将其写入画布ram。这意味着在每个25MHz时钟上,我只能更新15%的屏幕,而我不知何故需要我的电路知道它正在更新哪个15%的屏幕? 我不知道如何使用双缓冲,因为我不知道如何在读取时将数据写入内存。有没有一种方法可以避免协议发生混乱?这个家伙是怎么做到的?
8 fpga  vhdl  vga  buffer 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.