最近在网上找到一些SOPC自定义元件的端口类型设置资料,先分享给大家。
在版本8.0中,SOPC Builder已经集成了七十多个IP,用户可以非常方便的应用这些元件,不过在实际应用的时候,有些元件并没有包含在SOPC中,需要用户自己编写元件代码,并集成进SOPC Builder里面,自定义元件的集成过程其实就是将元件通过Avalon总线兼容的端口挂载到Avalon总线上,因此最重要的一步就是设置元件的端口,使其能挂载到Avalon总线上。
在7.2版本之后,Quartus II在自定义元件端口设置方面做了很大的修改,下面是变更的内容。
| Table 1. Current Avalon Interfaces Supported by the Component Editor | |||
| 接口类型 | 默认名字 | 描述 | v7.2中新增加 |
|---|---|---|---|
| Master | avalon_master or m0 | Defines an Avalon master port interface. | - |
| Slave | avalon_slave or s0 | Defines an Avalon slave port interface. | - |
| Tri-State Slave | avalon_tristate_slave | Defines an Avalon tri-state port interface. | - |
| Clock Input | clock or clock_sink | Defines a clock and reset input interface for a component. | Y |
| Clock Output | clock_source | Defines a clock and reset output interface for components that generate clocks for SOPC Builder systems. | Y |
| Conduit Output or Input | conduit_start or conduit_end | Used for exporting signals to the top level of SOPC Builder systems. Conduit output and input interfaces are identical and imply no signal direction for the conduit interface. Conduits can contain input, output, and bidirectional signals. | Y |
|
Interrupt Sender |
interrupt_sender | Defines an interrupt output signal and the Avalon slave interface that is associated with generating the interrupt signal. | Y |
| Interrupt Receiver | interrupt_receiver | Defines an interrupt input signal and the Avalon master interface that is associated with receiving interrupt signals. | Y |
| Streaming Source | avalon_streaming_source | Defines an Avalon streaming source port interface. | Y |
| Streaming Sink | avalon_streaming_sink | Defines an Avalon streaming sink port interface. | Y |
我们可以发现除了已有的Master,slave以及tri-state slave以外,还新增了流处理端口,中断收发端口,时钟及输出端口。因为在7.2版本以后,除了Avalom-MM总线外,SOPC又新增了Avalon-ST总线,因此端口也相应的增加了。
下面列出在7.2版本后主端口和从端口所需的端口信号,表中还列出了和以前版本的端口比较。
| Table 1. Avalon-MM Slave with Global Clock, Reset, Interrupt Output, and Export Signals | |||
| 信号类型 | 方向 | v7.1 和早期接口 | v7.2 版本之后接口 |
|---|---|---|---|
| clk | Input | Global | Clock Input (1) |
| reset | Input | Global | Clock Input (1) |
| address | Input | Avalon Slave | Avalon Slave |
| read | Input | Avalon Slave | Avalon Slave |
| readdata | Output | Avalon Slave | Avalon Slave |
| write | Input | Avalon Slave | Avalon Slave |
| writedata | Input | Avalon Slave | Avalon Slave |
| waitrequest | Output | Avalon Slave | Avalon Slave |
| irq | Output | Avalon Slave | Interrupt Sender |
| my_export_signals | Input, Output, or Bidir | Global | Conduit |
| Table 2. Avalon-MM Multi-Port Slave with Global Clock, Reset, and Export Signals | |||
| 信号类型 | 方向 | v7.1 和早期接口 | v7.2之后接口 |
|---|---|---|---|
|
clk |
Input | Global | Clock Input (1) |
| reset | Input | Global | Clock Input (1) |
| s1_address | Input | Avalon S1 Slave | Avalon S1 Slave |
|
s1_read |
Input | Avalon S1 Slave | Avalon S1 Slave |
| s1_readdata | Output | Avalon S1 Slave | Avalon S1 Slave |
| s1_write | Input | Avalon S1 Slave | Avalon S1 Slave |
| s1_writedata | Input | Avalon S1 Slave | Avalon S1 Slave |
| s1_waitrequest | Output | Avalon S1 Slave | Avalon S1 Slave |
| s1_export_signals | Input, Output, or Bidir | Avalon S1 Slave | S1 Conduit |
| s2_address | Input | Avalon S2 Slave | Avalon S2 Slave |
| s2_read | Input | Avalon S2 Slave | Avalon S2 Slave |
| s2_readdata | Output | Avalon S2 Slave | Avalon S2 Slave |
|
s2_write |
Input | Avalon S2 Slave | Avalon S2 Slave |
|
s2_writedata |
Input | Avalon S2 Slave | Avalon S2 Slave |
|
s2_waitrequest |
Output | Avalon S2 Slave | Avalon S2 Slave |
|
s2_export_signals |
Input, Output, or Bidir | Avalon S2 Slave | S2 Conduit |
| Table 3. Avalon-MM Master with Global Clock, Reset, Interrupt Input, and Export Signals | |||
| 信号类型 | 方向 | v7.1和早期接口 | v7.2 版本之后接口 |
|---|---|---|---|
|
clk |
Input | Global | Clock Input (1) |
|
reset |
Input | Global | Clock Input (1) |
|
address |
Output | Avalon Master | Avalon Master |
|
read |
Output | Avalon Master | Avalon Master |
|
readdata |
Input | Avalon Master | Avalon Master |
|
write |
Output | Avalon Master | Avalon Master |
|
writedata |
Output | Avalon Master | Avalon Master |
|
waitrequest |
Input | Avalon Master | Avalon Master |
|
irq |
Input | Avalon Master | Interrupt Receiver |
|
my_export_signals |
Input, Output, or Bidir | Global | Conduit |
| Table 4. Avalon-MM Multi-Port Slave with Interface-Specific Clocks and Export Signals | |||
| 信号类型 | 方向 | v7.1和早期接口 | v7.2 之后接口 |
|---|---|---|---|
|
s1_clk |
Input | Avalon S1 Slave | S1 Clock Input (1) |
|
s1_reset |
Input | Avalon S1 Slave | S1 Clock Input (1) |
|
s1_address |
Input | Avalon S1 Slave | Avalon S1 Slave |
|
s1_read |
Input | Avalon S1 Slave | Avalon S1 Slave |
|
s1_readdata |
Output | Avalon S1 Slave | Avalon S1 Slave |
|
s1_write |
Input | Avalon S1 Slave | Avalon S1 Slave |
|
s1_writedata |
Input | Avalon S1 Slave | Avalon S1 Slave |
|
s1_waitrequest |
Output | Avalon S1 Slave | Avalon S1 Slave |
|
s1_export_signals |
Input, Output, or Bidir | Avalon S1 Slave | S1 Conduit |
|
s2_clk |
Input | Avalon S2 Slave | S2 Clock Input (1) |
|
s2_reset |
Input | Avalon S2 Slave | S2 Clock Input (1) |
|
s2_address |
Input | Avalon S2 Slave | Avalon S2 Slave |
|
s2_read |
Input | Avalon S2 Slave | Avalon S2 Slave |
|
s2_readdata |
Output | Avalon S2 Slave | Avalon S2 Slave |
|
s2_write |
Input | Avalon S2 Slave | Avalon S2 Slave |
|
s2_writedata |
Input | Avalon S2 Slave | Avalon S2 Slave |
|
s2_waitrequest |
Output | Avalon S2 Slave | Avalon S2 Slave |
|
s2_export_signals |
Input, Output, or Bidir | Avalon S2 Slave | S2 Conduit |
| Table 5. Avalon-MM Multi-Port Master and Slave with Interface-Specific Clocks | |||
| 信号类型 | 方向 | v7.1和早期接口 | v7.2版本之后接口 |
|---|---|---|---|
|
slave_clk |
Input | Avalon Slave | Slave Clock Input (1) |
|
save_reset |
Input | Avalon Slave | Slave Clock Input (1) |
|
slave_address |
Input | Avalon Slave | Avalon Slave |
|
slave_read |
Input | Avalon Slave | Avalon Slave |
|
slave_readdata |
Output | Avalon Slave | Avalon Slave |
|
slave_write |
Input | Avalon Slave | Avalon Slave |
|
slave_writedata |
Input | Avalon Slave | Avalon Slave |
|
slave_waitrequest |
Output | Avalon Slave | Avalon Slave |
|
master_clk |
Input | Avalon Master | Master Clock Input (1) |
|
master_reset |
Input | Avalon Master | Master Clock Input (1) |
|
master_address |
Output | Avalon Master | Avalon Master |
|
master_read |
Output | Avalon Master | Avalon Master |
|
master_readdata |
Input | Avalon Master | Avalon Master |
|
master_write |
Output | Avalon Master | Avalon Master |
|
master_writedata |
Output | Avalon Master | Avalon Master |
|
master_waitrequest |
Input | Avalon Master | Avalon Master |
当元件设置好端口,并编写完相应的Verilog或VHDL代码之后,并可以通过SOPC Builder中的Component editor集成进SOPC Builder中,用户并可以非常方便的调用。
浙公网安备 33010602011771号