有一个在这里的一些问题,如此忍受我,感谢百忙之中阅读本文时...如何有效地利用VHDL模块?
我最近写了SPI主,并完全模拟它,以确保它可以作为预期。 在这里,我想在另一个设计,其中我已经有建立起来,可以从SPI总线上的ADC收到的值7段显示器组件使用它,但我想我已经在我迷茫的东西这点。
我需要发送一个带有其他参数的脉冲到SPI主控器以启动传输,并且在我可以发送任何其他消息之前等待忙音信号被解除断言。 我真的不知道如何以最佳方式向新的设计中实现SPI主机。
我会在设计中使用它作为组件吗?有没有更好的办法?
如果它必须是一个组件,有什么办法可以设置它直接从该组件输出到引脚,而不是必须映射到顶层设计中的新输入/输出?
例如,我有SCLK,MOSI,MISO和CS; 我能不能直接输出它们,而不必通过顶层进行映射?好像它会简化顶层,使其不那么笨重。
另外,是否可以设置一个函数来说“通过SPI发送数据,然后返回接收的内容”?
我还是很了解如何将这些东西放在一起,所以帮助/示例将不胜感激。这似乎是所有可用的基于东西喜欢用两个半加器,逻辑门等,只有当他们是那么简单的帮助到一个点的例子/教程。
编辑:我SPI的实体主
entity SPI_master is
generic(data_width: integer := 8;
clock_select: integer := 0);
port(SCLK: out std_logic;
MOSI: out std_logic;
MISO: in std_logic;
CS: out std_logic;
Mclk_in: in std_logic;
RST: in std_logic;
CPOL: in std_logic;
CPHA: in integer;
send_packet: in std_logic;
busy: out std_logic;
Tx_data: in std_logic_vector(data_width-1 downto 0);
Rx_data: out std_logic_vector(data_width-1 downto 0));
end SPI_master;
将您的SPI主机的实体声明(而不是体系结构)添加到帖子可能会有帮助。 –
好点。添加。 – Kureigu