首页 文章
  • 3 votes
     answers
     views

    优化fpga实现的管道吞吐量的最佳实践是什么?

    例如,如何充分利用重定时和/或c-slow来充分利用给定的管道 . 通过重新定时,一些模块通过将移位寄存器置于输入(正向寄存器 balancer )上获得更好的结果,而其他模块在输出上使用移位寄存器(向后寄存器 balancer )时效果更好 . 现在我使用以下方法: 代码hdl(在verilog中) 为特定模块创建时序约束 综合, Map ,地点和路线(使用ISE 13.1) 查...
  • 1 votes
     answers
     views

    [verilog]使用Pmod_KYPD组合激活LED

    我正在使用Pmod_KYPD连接到Digilent FPGA . 我的目的是在将组合“123”输入键盘后激活电路板上的第一个LED . 我已经从Digilent下载了demo code键盘,它工作正常,它基本上显示从键盘上按下的7段显示器上的任何内容 . 演示代码由两部分组成,即解码和显示 . 我已经修改了显示代码(只有第二个'always'语句是我的补充),如下所示: `timescale 1n...
  • 1 votes
     answers
     views

    SPI奴隶没有't work when I follow the spec, does when I don'?

    我在Verilog写了一个SPI slave . 有一些实现,但我仍然在学习Verilog和数字逻辑,因此我决定尝试自己编写 . 我的实施工作 . 但我不得不做出改变才能让它发挥作用,并且做出改变(我认为)使我的实现与摩托罗拉SPI规范不一致 . 我想知道:我认为这很奇怪,或者我只是不明白它是如何起作用的? SPI信号有四条线路,分别称为SCK,SS,MOSI和MISO . 这并不奇怪 . FP...
  • 0 votes
     answers
     views

    MAX 10 ADC,具有VHDL / Quartus Prime Lite代码优化

    首先,我必须说我是VHDL的complette初学者,所以如果它是一个非常愚蠢的问题,我想提前道歉 . 我试图让ADC软IP工作 . 我想只使用ADC,所以没有FIFO或其他任何东西 . 因此,我使用qsys文件生成了IP核,并将其包含在我的项目中 . 我还用预分频器激活了通道8 . 我试图从连接到通道8的可变电阻读取值,并用led打印出5个最高有效位 . case语句应该创建激活adc所需的模...
  • -1 votes
     answers
     views

    (Verilog)Spartan-6反相输出LED

    对Verilog和FPGA来说很新 . 我无法围绕输出到Spartan-6板的过程,并可以做一个书面解释 . 我所做的只是一个简单的AND门输出到LED . module andgate( input a, b, output q ); assign q = a&b; endmodule 输入开关为SW1和SW2(均设为上拉),输出LED为D1 . 程序文件在电路板上运行得很好,除了...
  • 0 votes
     answers
     views

    使用VHDL控制LED的亮度

    我是VHDL编程的初学者 . 最近,我想使用一个连接到FPGA板的4个LED的应用程序开发VHDL组件 . 通过控制字/字节控制FPGA,需要为LED实现以下功能: 4个LED的亮度可以控制在10%,30%,60%,85%,频率为0.2Hz,0.5Hz,1Hz,2Hz . 应该重复所选择的功能,直到给出另一个控制字节 . 任何帮助或提示将非常感谢解决任务 .
  • 0 votes
     answers
     views

    VHDL从文件中读取文本,然后存储和比较它们以创建测试台

    我有一个文本文件,表示来自电路的整数格式的adc值,看起来像, 0000 0001 0005 3864 2290 1234 . . . 0002 0004 0006 4532 3457 . . . 前3个整数总是表示 Headers ,随后的256个整数值包含一个块 . 我编写了一个VHDL代码(算法)来分析这个文件,它存储了这个文件的几个特征 . 我还编写了一个测试平台,它读取文件并将一行中的...
  • 0 votes
     answers
     views

    FPGA输入到Simulink

    我有一块DE2i-150板 . 我目前有一个Simulink模型,它将正弦输入引入外部控制系统 . 而不是使用Simulink库作为我的输入,我将如何使用该板 . I.E.我想从FPGA板输出数据作为正弦发生器 . 电路板可以通过USB,数据或串行端口输出数据 . 为了澄清,我所说的正弦输入仅仅是一个Simulink模块 . 因此,从理论上讲,我认为我应该能够检查Simulink创建的C程序,并...
  • 1 votes
     answers
     views

    屏蔽DMA分配内存的物理地址是否有效?

    我目前正在编写一个Linux内核驱动程序,它需要告诉FPGA一个RAM中的基地址来写入 .使用 dma_alloc_coherent 在内核驱动程序中分配内存 . 这将生成32位物理地址和内核虚拟地址,物理地址将传递给FPGA .FPGA是一个带有嵌入式ARM Cortex-A9的Cyclone V,带有驱动程序的嵌入式Linux正在运行 .现在的问题是,FPGA架构仅产生27位宽的总线来寻址sd...
  • 3 votes
     answers
     views

    VHDL初学者 - 这个电路的时序有什么问题?

    我对VHDL和硬件设计非常陌生,并且想知道是否有人能告诉我,如果我对我遇到的以下问题的理解是正确的 . 我一直在为Nexys4板制作一个简单的BCD到7段显示驱动程序 - 这是我的VHDL代码( Headers 被剥离) . entity BCDTo7SegDriver is Port ( CLK : in STD_LOGIC; VAL : in STD_LOGIC_...
  • 0 votes
     answers
     views

    FIFO错误:找不到控制信号 - VHDL

    我找到了一个VHDL FIFO代码并尝试修改它以使用两个不同的时钟,一个用于写入,一个用于读取 . 我已经尝试了代码并且似乎在模拟中工作,但是当我尝试合成它时,我得到了这个错误: “找不到Full的控制信号” library IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; entity FIFO is Gene...
  • -2 votes
     answers
     views

    异步FIFO代码建议 - VHDL

    我发现的所有代码都会产生一些错误 . 当我尝试读写时,我的FPGA制造商FIFO会在模拟中产生问题,而且我无法对其进行修改或适应其他FPGA . 有人可以建议我用VHDL编写一个已经编写的异步FIFO(2时钟FIFO)代码,可能已经没有问题了吗? 我需要用2个不同的时钟同时读写的可能性 .
  • 2 votes
     answers
     views

    使用C编程调用VHDL实现

    我正在考虑编写一个C函数,它基本上将实数的数组/向量作为参数传递给VHDL实现,VHDL代码使用FPGA中的数组进行一些计算,并将结果返回给C函数 . 所以,我的问题 - 如何编写C函数来调用VHDL实现?任何人都可以指导我正确的方向,如教程,API或任何东西? 任何帮助将不胜感激 . 谢谢! :)
  • 0 votes
     answers
     views

    不可合成的VHDL代码

    我正在尝试使用VHDL进程为Spartan-S6系列FPGA制作DNA阅读器模块 . 问题是我的代码无法合成 . 它适用于模拟,但合成它只是卡住 . 我还搜索了不可合成的VHDL流程,但我认为我做得对,它必须很好地合成 . 这是我的流程代码: FSMOutputController:process(state,readDnaCmd) variable clkCounter :unsigne...
  • 1 votes
     answers
     views

    使用'constant'和在vhdl中使用数字有什么区别

    作为对Artix-7 FPGA上现有大型设计的改编的一部分,我实现了一个简单的计数机制,类似于“带有'常数'的Archticture”,因此在将来,我可以只改变常量的值而不是过分担心它的使用位置 . 然而,它导致了几次定时故障,我回到正常的方式来增加一个计数器,通过添加1来解决时序故障 . 以下是我尝试在Vivado 2016.4工具中合成的实体和2个体系结构 . 但是Vivado中的Projec...
  • 1 votes
     answers
     views

    VHDL - 用变量计时一个触发器?

    我在工作中继承了一些传统的VHDL,并一直在试图弄清楚问题 . 首先让我说我对Verilog更有经验但是已经花了一段时间用VHDL来解决这个问题 . 因此,我们的产品自2011年以来一直运行良好 . 但是,我们需要更改FPGA,因此我们正在移植代码 . 该代码的高级视图是FPGA在板载闪存中存储CPU的引导加载程序 . 上电时,CPU读取FPGA以提取引导加载程序 . 在我们的旧设计上它运作良好 ...
  • 3 votes
     answers
     views

    无法将.sof文件加载到Cyclone II fpga板

    我是VHDL和FPGA的新手 . 我编写了一个示例代码,它执行 a 和 b 的EXOR并将其存储在 c 中 . 此代码采用VHDL行为架构 . 我正在使用 Quartus 11.1+SP2-2.11 . 我分配了针脚 a 到 SW0 , b 到 SW1 和 c 到 LEDG0 . 一切都在编译,没有错误 . 我去 Tools->Programmer . 我在 RUN mode 中有我的...
  • 1 votes
     answers
     views

    Lattice Diamond项目中的多个VHDL文件

    我有一个带有多个VHDL文件的FPGA项目(所有编译都没有错误),用莱迪思的Diamond软件编写 . 问题是当我去分配引脚时,我看到的是一个VHDL文件的输入和输出 . 如果我删除该文件,我看到另一个,netlist分析器具有相同的行为 . 是否可以在同一个项目中包含多个VHDL文件,或者我是否必须在一个VHDL文件中编写所有内容?
  • 1 votes
     answers
     views

    VHDL按钮和LED

    VHDL的新手,熟悉一切 . 当按下按钮时,我让我的FPGA打开LED(下面的代码),但必须按住按钮才能使LED保持亮起状态 . 当按下按钮并释放按钮时,我希望LED转动并保持打开状态(再次按下按钮时关闭),但我对如何完成此操作感到困惑 . library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IE...
  • 0 votes
     answers
     views

    VHDL解复用器输出端口之间切换信号

    请放轻松我,我是新手...... :)我有一个信号,我希望根据计数CNT的值在两个可用输出端口TX_ADDR和TX_DATA之一之间切换输出 . 我的想法是将一些值首先输入32位值,然后串行连接到地址总线,然后输入数据总线,然后输入地址,然后输入数据......依此类推 . 而且我基本上保持这种惯例无止境 . 如果我有类似的东西: process(sCNT) begin if(sCNT...
  • 0 votes
     answers
     views

    错误“标识符的类型与其用法不一致”“类型”在VHDL中是什么意思?端口映射是否会影响'type'?

    我一直在解决使用VHDL解决错误“标识符的类型与其使用不一致”的问题 . 据我所知,这意味着在分配值时出现了问题 . 例如,将std_logic分配给std_logic_vector或者将std_logic分配给某个位 . 正确? 我尝试进行端口映射后得到错误 . 这是错误发生的地方: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.st...
  • 0 votes
     answers
     views

    在端口映射中使用when ... else statment

    我在端口映射中找不到任何关于使用... else statment的信息 . 它似乎是一个正确的形式,但当我编译时,我看到这样的错误: 错误(10500):Device.vhd(68)处文本“when”附近的VHDL语法错误;期待“)”或“,” 这可能是一个愚蠢的错误因为我仍然在vhdl新鲜 . 你能给我一个暗示吗?我会非常感谢任何帮助 . 这是代码,SDA端口是inout类型: com : ...
  • 0 votes
     answers
     views

    在VHDL中添加并分配给信号

    我正在为一项任务开发一个10点移动平均滤波器 . 我正在采取一些小步骤,以便我可以确保我的代码的每个阶段都正常工作 . 我的第一步是获取一个标准逻辑向量(5位)的输入,并将其转换为整数类型的信号进行处理,然后再转换回标准逻辑向量进行输出 . 我的第一个代码块是: library IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL;...
  • 0 votes
     answers
     views

    VHDL读入输入端口会破坏输出信号

    我通过inout线触发传感器 . 在那之后,我正在等待传感器将输入线拉高,但是我在读取输入信号时遇到了麻烦,而没有破坏我的输出信号 . 写作,不读 . 每当线 elsif state = sensor_answer_0 AND trigger_sensor = '1' then ouput_signal设置为'X' . 但是当我评论trigger_sensor时: elsif state = s...
  • 0 votes
     answers
     views

    VHDL中函数和组件之间的区别

    我想知道VHDL中函数和组件之间的区别是什么,以及它们在模拟中的结果 . 我用函数编写CRC代码生成器 . 我也可以用组件编写它 . 这两者有什么区别吗?我想知道:在fpga中合成和实现它们有什么区别吗?
  • 5 votes
     answers
     views

    VHDL中数据类型转换与位数组操作的成本有多高?

    在VHDL中,如果你想增加一个表示实数的std_logic_vector,我会遇到一些选项 . 1)使用类型转换数据类型转换函数将std_logic向量更改为有符号或无符号值,然后将其转换为整数,向该整数添加1,并将其转换回std_logic_vector,方式与之前相反 . 尝试这样做时,下面的图表很方便 . 2)检查LSB的值 . 如果是'0',则将其设为'1' . 如果它是'1',则执行“...
  • 0 votes
     answers
     views

    VHDL Verilog整数数组端口

    我正在开发一个用于突破游戏的FPGA实现的项目 . 在这个游戏中,我们必须使用球和桨来打破砖块 . 一些砖块可能在与球的多个接触处断裂 . 为此,我使用整数数组来表示打破特定砖块所需的命中数 . 例如(2,0,1,2)代表一个砖块,需要打破2次点击,然后是碎砖,然后是砖块,需要打破一次打击等 . 另外,我在VHDL中完成了所有编码,但为了将结果输出到VGA屏幕,我使用的是Verilog . 在VH...
  • 2 votes
     answers
     views

    SystemVerilog的问题是否具有非阻塞分配的循环?

    当我在基于SystemVerilog的FPGA设计工作时,我遇到了一种情况,我必须在时钟边缘计算4个元素的数组之和 . 我能够使用带有非阻塞赋值语句的for循环来做到这一点 . 该设计在Quartus 15.0上成功合成,但当我尝试在Modelsim Altera上使用相同的RTL运行模拟时,结果出乎意料 . 我已经编写了一个示例代码来说明相同的内容 . module schedule; log...
  • 0 votes
     answers
     views

    Verilog Reg数组

    循环访问1D reg数组会遇到一些麻烦 . 最终我试图完成以下任务 . 在“监听”状态下,rx_values填充一个读缓冲区(4个8位字符),用于存储在控制台中输入的字符,并通过将tx_data设置为最后一个字符来回显字符(这有效) 当按下回车键时,状态切换到“读取”,每次迭代将tx_data设置为读缓冲,直到达到第4个字符,此时状态被重置为空闲 . (这不起作用) 我进入读状态;但...
  • 1 votes
     answers
     views

    在VHDL中使用数组切片

    我正在尝试设计一个可合成的VHDL代码,它使用了一些多维数组特征 . RTL有一个64字深的数组(称为 big_array_s ,64×16位),用于存储一些初始LUT值 . 此外,还有一个4字深的数组( small_array_s ,4 x 16位),用于设计 . 需要将大数组的切片分配到小数组中 . 它在下面的代码片段中进行了说明 . type small_array is array (0...

热门问题