2008年11月18日星期二

使用 local bus slave in FPGA 用于检测 VHDL Design

对FPGA进行测常常是一件很麻烦的工作。
这里有我最近的设计,例:
通过不同的从LOCAL BUS给定的地址可以从FPGA中很方便地读出所需要的测试数据。


status_multiplexer: process (I_ADR_test, DEBUG_PORT) is
begin
  case conv_integer(I_ADR_test)*4 is
  when 0 => I_DATA_IN_test_fpga2pc <= DEBUG_PORT(31 downto 0);
  when
4 => I_DATA_IN_test_fpga2pc <= DEBUG_PORT(63 downto 32);
  when
8 => I_DATA_IN_test_fpga2pc <= DEBUG_PORT(95 downto 64);
  when
12 => I_DATA_IN_test_fpga2pc<= DEBUG_PORT(127 downto 96); -- = 0xC
  when others
=> I_DATA_IN_test_fpga2pc <= "10101010101010101010101010101010";
end case;
end process
;


这里只用了一个很简单的multiplexer。
完成了对多个数据的测试。这个设计对于读取时地址资源稀少的 LOCAL BUS 设计很有帮助。可以只用一个 LOCAL BUS 但是可以读出不同的测试数据(在不同的时间)。我们只要给定 LOCAL BUS 的值 在本例中,给定 60004,就可以读出 DEBUG_PORT(63 downto 32)的数据。

没有评论: