【问题标题】:VHDL LFSR Output through FPGA board SMA connectorVHDL LFSR 通过 FPGA 板 SMA 连接器输出
【发布时间】:2013-02-16 17:44:48
【问题描述】:

我最近开始为学校做一个 FPGA 项目,我以前从未使用过 VHDL,所以我尽力将我的程序拼凑起来。总的来说,我的目标是让 prbs 或 LFSR 随机生成。我的 vhdl 代码在 xilinx ISE 软件中检出并在测试台中正常运行,但我需要将项目闪存到板上并将示波器连接到板上的一个 SMA 连接器,我的问题是如何将我的输出转发到Spartan 6 板上的单个 SMA 连接器

library IEEE;
use IEEE.std_logic_1164.all;

entity LFSR is
port (
  clock    : std_logic;
  reset    : std_logic;
  data_out : out std_logic_vector(9 downto 0)
 );
 end LFSR;

 architecture Behavioral of LFSR is

 signal lfsr_reg : std_logic_vector(9 downto 0);

begin

 process (clock)
variable lfsr_tap : std_logic;
begin
if clock'EVENT and clock='1' then
  if reset = '1' then
    lfsr_reg <= (others => '1');
  else
    lfsr_tap := lfsr_reg(6) xor lfsr_reg(9);
    lfsr_reg <= lfsr_reg(8 downto 0) & lfsr_tap;
  end if;
end if;
 end process;

  data_out <= lfsr_reg;

end Behavioral;

现在我只想将输出/输出转发到 SMA 连接器,以便我可以在示波器上获得结果,任何帮助都会很棒

【问题讨论】:

    标签: vhdl fpga xilinx


    【解决方案1】:

    您只需将 I/O 映射到 FPGA 芯片上的实际引脚即可。这是在一个约束文件(通常是.ucf)中完成的,您可以手动编辑(它只是文本),或者让工具为您处理。

    在较新的 ISE 工具中,PlanAhead 对此负责 - 您可以从 ISE Processes 窗格中打开它(选择用户约束 -> I/O 引脚规划 (PlanAhead) - 综合后)。

    这将打开 PlanAhead 并为您提供设计中的 I/O 列表(您的 clockresetdata_out)。现在您只需要将它们映射到正确的 FPGA 引脚。查看您的电路板文档以找到时钟输入、按钮(用于复位)和 SMA 连接器的位置。

    PlanAhead 应该为您创建.ucf 文件,并将其添加到您的项目中。之后,您可以在 ISE 编辑器中对其进行编辑 - 一旦您在其中包含一些初始内容,它就会非常不言自明。

    另外,请查看this Xilinx guide(从第 100 页起)以获取分步指南。

    【讨论】:

    • 好的,谢谢,我试试这个。我使用了提前计划程序并使用了 dataout 6,并将输出设置为 B3,在 Spartan 6 板上是 SMA 连接器之一,但什么也没发生。该程序使 NET "data_out[6]" LOC = B3;该行进入 .ucf 文件。只是试图让生成的随机位出现在 fpga 板上的示波器上。还有什么我没有做的,还是只是 ucf 文件对我造成了问题?
    • 你也连接了时钟信号吗?
    • 是的。我能够在示波器上显示一些东西。我有一个使用建议的方法与 ucf 一起出现的位。所以我有一个 data_out 似乎在 1 和 0 之间波动。我真正需要的是显示组合位出现在示波器上,当我运行测试台时,我有一个 data_out[9,0],它给了我我的在 0-1023 之间生成的随机数...我想让该随机数出现在示波器上...有什么想法吗?
    • 每个位都需要一个输出引脚(因此示波器上也需要一个通道),或者您必须对信号进行序列化 - 即,在输出信号上一个接一个地输出.有这方面的 ip-cores,但为这种情况自己写一个应该不会太难。
    【解决方案2】:

    您的 SMA 连接器只能容纳单个输出,不能容纳总线。 要查看 LFSR 的 MSB,只需将以下行添加到 .ucf 文件中:

    NET clock        LOC = $PIN; 
    NET reset        LOC = $PIN; 
    NET dataout<9>   LOC = $PIN; # your SMA output
    NET dataout<8>   LOC = $PIN;
    NET dataout<7>   LOC = $PIN;
    NET dataout<6>   LOC = $PIN;
    NET dataout<5>   LOC = $PIN;
    NET dataout<4>   LOC = $PIN;
    NET dataout<3>   LOC = $PIN;
    NET dataout<2>   LOC = $PIN;
    NET dataout<1>   LOC = $PIN;
    NET dataout<0>   LOC = $PIN;
    

    在您的电路板文档(或原理图)中查看正确的引脚,并在您的 .ucf 文件中添加正确的引脚名称。 我建议为 dataout 的剩余输出使用一些 LED。

    【讨论】:

    • 好的,谢谢,我试试这个。我使用了提前计划程序并使用了 dataout 6,并将输出设置为 B3,在 Spartan 6 板上是 SMA 连接器之一,但什么也没发生。该程序使 NET "data_out[6]" LOC = B3;该行进入 .ucf 文件。
    • 只是试图让生成的随机位出现在 fpga 板上的示波器上。还有什么我没有做的,还是只是 ucf 文件对我造成了问题?
    • 这些工具还会生成一个引脚报告。一切都好吗?
    • 时钟管脚连接对吗?您看到示波器上的时钟了吗?你的复位输入的极性如何?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多