Questions tagged «vhdl»

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

9
FPGA上的新手项目?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我距离完成我的第一门大学数字逻辑设计课程还有两个星期的时间,而且显然不会有期末考试,只是一个乏味的期末考试。 因此,正如任何好奇的学生会做的那样,我研究了FPGA的实际含义以及在课堂上我一饱眼福。而且我决定完成一个简单的FPGA项目。我正在使用Basys2 Spartan-3E FPGA,并且对数字逻辑很熟悉,并且使用ISE来推动逻辑门,但是我不知道VHDL / Verilog(我敢肯定我会很容易地将其拾起)。 有没有人对初学者有任何项目构想?我做了很多实验室演示,但是没有什么花哨的。
11 fpga  design  vhdl  verilog 

6
VHDL中的FIR / IIR滤波器的代码示例?
我正在尝试在我的Spartan-3开发板上使用DSP。我用一块旧主板上的芯片制作了一个AC97板,到目前为止,我可以用它来做ADC,将样本乘以<1(减小音量),然后再乘DAC。 现在,我想做一些基本的DSP工作,例如低通滤波器,高通等。但是我对数字表示感到困惑(例如整数?定点?Q0.15?溢出还是饱和?)。 我只是想要一些实际的简单过滤器的示例代码来入门。没有高效,快速或类似的功能。只是在VHDL中实现的理论滤波器。 我一直在搜索,但我只是找到理论公式-我明白了,我不了解如何处理从ADC获得的带符号的16位,48KHz音频样本。我一直在使用这些库:http : //www.vhdl.org/fphdl/。如果我将样本乘以0.5、0.25等,则可以听到差异。但是更大的滤波器只会给我带来噪音。 谢谢。
11 fpga  vhdl  dsp  iir  fir 

3
有可综合的RTL的“设计模式”吗?
对于软件,《设计模式》一书是一组用于在软件中执行常见操作的模式,它为软件从业人员提供了通用术语,以描述他们需要创建的某些组件。 一般而言,是否存在用于可合成RTL或RTL的书籍或资源?诸如常见的陷阱,设计折衷,死锁注意事项和界面设计之类的事情。

4
FPGA:递增还是递减?
我正在学习使用FPGA(Papilio开发板,使用vhdl具有xilinx spartan3e)。 我需要将输入脉冲除以(硬编码)数字。 我可以看到3个选项-大致为伪代码(以10个计数为例): 初始化为0,在输入上升沿加1,则为10;如果相等,则重置为0并触发输出脉冲 初始化为10,在输入上升沿减小1,则为0;否则,为0。如果相等,则重置为10并触发输出脉冲 初始化为9,但请确保至少有1个前导“ 0”位,这是我的输出位。在输入上升沿减小1。在输出位的上升沿,复位。 占空比并不重要。 其中之一比其他更好吗?有没有我没有想到的更好的方法? 有没有一种“标准”的方法可以使编译器有最佳的优化机会?
11 fpga  vhdl  xilinx  papilio 

5
VHDL是否像C ++或python一样存在开源库?
当我用C ++或python处理问题时,有很多库可以使我的代码繁重。我在考虑C ++的GNU GSL,BOOST或FFTW,以及python的NumPy或SciPy。在许多方面,这些资源的存在使使用这些相应语言进行编码变得很有价值,因为这些库使您不必从头开始重写所有低级内容。 IEEE标准库似乎仅涵盖非常基本的内容,例如数据类型(类似于C标准库)。 在VHDL中,您似乎可以购买/找到一些可以解决问题的“ IP内核”,而不用使用开源库。在python中,如果我想与串行设备通信,我就import serial完成了。在VHDL中,我要么会被迫从头开始编写串行协议,要么必须在各种存储库中四处搜寻,直到我发现有人制作了类似的作品。然后,我将把一些代码修补到我的项目中,而不是仅仅包含一些东西并调用它。以类似的方式,如果我想执行FFT,我可以通过Google在VHDL中找到FFT的示例,但是找不到像FFTW这样简单的东西。 我可以将任何全面的开源库导入项目吗?为什么每个人似乎都为许多相同的事情滚动自己的代码?

4
如何在VHDL中将下部模块的内部信号带到上部模块?
如何将VHDL源代码的内部信号带到测试台,以便可以将它们视为波形?我使用Active HDL。我想知道是否有任何与工具无关的方法来实现我的目标。任何帮助表示赞赏。 我现在收到此错误。 我的源代码是 entity SPI_DAC is Port ( -- inputs and oututs ) end SPI_DAC; architecture Behavioral of SPI_DAC is --These are my internal signals signal ch1_byte_data_sent : STD_LOGIC_VECTOR(23 downto 0) := x"000000"; signal ch1_byte_cmd_sent : STD_LOGIC_VECTOR(23 downto 0) := x"000000"; --and a few other signals begin --functionality end …
11 vhdl 

2
VHDL:对向量的各个位进行“或”运算
我想将向量的位或在一起。所以说我有一个向量example(23 downto 0),我想把所有的位或到另一个向量中,有没有办法做到这一点而不涉及example(0) or example(1) or ...example(23)去呢?
11 vhdl 

2
什么是FPGA中的“半锁存器”?
在一篇有关防辐射FPGA的论文中,我遇到了这句话: “与Virtex器件有关的另一个问题是半锁存器。在这些器件中有时将半锁存器用于内部常数,因为这比使用逻辑更有效。” 我从未听说过称为“半锁存器”的FPGA设备原语。据我了解,这听起来像是一种在后端工具中“提供”常量“ 0”或“ 1”的隐藏机制。 ,以及如何使用它们保存逻辑? 编辑:本文是我发现这是针对太空应用的防辐射FPGA和耐辐射FPGA的比较
10 fpga  vhdl  xilinx  radiation 

5
VHDL:在设计中实现乘法器时使用“ *”运算符
当今的FPGA内置了DSP模块,最新的FPGA甚至还内置了符合IEEE-754的浮点单元。 在其中选择所需的参数之后,可以使用GUI创建DSP实体/模块,然后在设计中实例化它。 什么时候需要在实例化实际DSP模块的设计中进行此类微管理,何时仅在代码中输入“ *”运算符并让综合工具处理底层细节?哪个更好? 当涉及二进制乘法时,有许多不同类型的乘法算法。从现在开始,我们已经在硅片上内置了DSP模块,甚至还内置了浮点乘法器,这是否意味着所有这些算法都没有被有效地淘汰。
10 fpga  vhdl  dsp 

2
您能否将Modelsim测试平台与外部刺激相连接
我正在一个同时进行驱动程序软件和FPGA开发的团队中工作。FPGA仿真是在Modelsim中完成的,而驱动程序软件则是用C语言编写的。为了最大程度地降低集成风险,我希望能够在将产品两半投入硬件之前对其进行建模。 我知道Modelsim支持一个测试平台,该平台可以让您以文本文件的形式提供刺激,并带有输入的时间和值。我想知道Modelsim是否具有一种模式,该模式可以让您将管道连接到外部应用程序(例如我们的驱动程序),并运行某种分布式模拟,其中软件可以将值推入测试台,然后稍后观察结果。 我无法使用文本文件输入完成的技巧是使产品的两半相互作用。我需要让软件将值“写入”到FPGA模拟器中,读取结果,然后将新值写入到FPGA中,这取决于读取的结果。文本文件要求输入独立于输出。 我已经在StackExchange和google上进行了搜索,但是我无法提供一组关键字来缩小搜索范围,从而无法确定我要寻找的行为,或者确定它不存在。

1
MD5 VHDL管道
我正在尝试根据此链接实现3级MD5管道。特别是第31页的算法。还有另一个文档描述了数据转发。这是在FPGA(Terasic DE2-115)中完成的。该项目中没有原理图,只有VHDL代码。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity md5core is port ( CLOCK_50 : in std_logic; SW : in std_logic_vector(17 downto 17) ); end entity md5core; architecture md5core_rtl of md5core is type r_array is array(0 to 64) of std_logic_vector(7 downto 0); constant R : r_array := ( x"07", x"0c", …
10 fpga  vhdl 


2
VHDL中的矩阵向​​量乘法函数是否已并行化?
我有以下VHDL函数,该函数将给定的mxn矩阵a乘以nx1向量b: function matrix_multiply_by_vector(a: integer_matrix; b: integer_vector; m: integer; n: integer) return integer_vector is variable c : integer_vector(m-1 downto 0) := (others => 0); begin for i in 0 to m-1 loop for j in 0 to n-1 loop c(i) := c(i) + (a(i,j) * b(j)); end loop; end loop; return …
9 fpga  vhdl  matrix 

3
同时按下相同的按键行
我正在设计VHDL中的键盘。仅按一个键,一切正常。我正在状态机中扫描每一列的按键,并且在没有按键按下的情况下,这是pin4pin6pin7pin2 = "0000"我切换到下一状态以扫描下一列的条件。因此我设置的列pin3pin1pin5顺序地"001","010"和"100"。 在扫描pin3pin1pin5如"001",如果pin4pin6pin7pin2是"0100"则简单地“9”被按下。我在VHDL中声明pin4pin6pin7pin2为输入和pin3pin1pin5输出端口。当我同时按6和9 pin6和pin7时high。读取第一个按键,第二个按键被忽略。当我按下3和7的同时,第一个用几毫秒压胜前,第一个键被读取时,第二个键被忽略,pin2并且pin4是high。 这是棘手的部分。当我同时按下4和6时,我期望pin7是,high但是变成了low和pin4pin6pin7pin2 = "0000",我不知道如何以及为什么。因为"0000"检测到没有按下任何键,所以状态机从一个状态跳到另一个状态。在按住4和6的情况下,如果一次按下并离开4次,就会检测到6次被按下了6次,这是一个很大的错误。如果您能帮助我进行调试,我将非常高兴! “ 1”和“ 2”发生相同的情况,仅对于同一行中的键,“ 7”和“ 8”发生相同的情况。由于这是一个正在进行的项目,因此我无法将我的VHDL代码放在网上:(如果您能给我一些克服该问题的技巧,我将非常高兴! 下面,我没有将我的代码上传到开发板上,没有代码在运行。连接Pin5到地,在1,2,4,5,7,8单次按压,*,0不转Pin3上,但如果林挤压6,然后加入4-同时LED Pin3指示灯是亮的Pin7LED是仍然有效,但当我的代码运行时,这不会发生。也许我连接错了,幸运的Pin7是,我不知道... 以下是键盘的原理图:

2
VHDL:计数位时接收模块随机失败
背景 这是一个个人项目;考虑到将FPGA连接到N64,FPGA接收的字节值然后通过UART发送到我的计算机。它实际上运行得很好!不幸的是,在随机时间,设备将发生故障,然后恢复。通过调试,我设法找到了问题,但是由于无法使用VHDL,我对如何解决它感到困惑。 我一直在与VHDL玩弄几天,而我可能无法解决这个问题。 问题 我有一个示波器,它测量进入FPGA的N64信号,另一个通道连接到FPGA的输出。我也有数字引脚记录计数器值。 本质上,N64发送9个数据位,包括STOP位。计数器对接收到的数据位进行计数,当我达到9位时,FPGA开始通过UART发送。 这是正确的行为: FPGA是蓝色波形,橙色波形是N64的输入。在接收期间,我的FPGA“回音”输入的信号以进行调试。FPGA计数到9后,它开始通过UART传输数据。请注意,N64完成后,数字引脚计数为9,FPGA输出立即变为低电平。 这是一个失败的例子: 请注意,计数器会跳过位2和7!FPGA到达末尾,等待N64的下一个起始位,但是什么也没有。因此,FPGA超时并恢复。 这是N64接收模块的VHDL。它包含计数器:s_bitCount。 library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity N64RX is port( N64RXD : in STD_LOGIC; --Data input clk25 : in STD_LOGIC; clr : in STD_LOGIC; tdre : in STD_LOGIC; --detects when UART is ready transmit : out STD_LOGIC; --Signal to …
9 fpga  vhdl  protocol 

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.