关于Xilinx FSL总线的一些总结
2015-11-06 11:02
239 查看
整了一段时间altera的AVALON总线,最近又整了一段时间Xilinx的FSL总线,AXI总线比较主流一点,教程也比较多,FSL少多了,由于个人需要,基本上是自己琢磨FSL。
建立好FSL总线之后,会生成一个.v文件,文件名与自定义IP核名字相同。
主要有以下一些接口
FSL_Clk 是总线时钟,FSL_Rst是总线复位(高电平有效!!!!!!)
时钟:
FSL_M_Clk:主设备给FSL总线提供的时钟信号(ip核中不用)
FSL_S_Clk:从设备给FSL总线提供的始终信号(ip核中不用)
数据(32bit):
FSL_M_Data:32bit,主设备发送到总线上的数据
FSL_S_Data:32bit,总线发给从设备的数据
控制(1bit)
FSL_M_Control:主设备发给总线的控制信号(ip核中不用)
FSL_S_Control:总线发给从设备的控制信号(ip核中不用)
FSL_M_Write:主设备正在写总线的标志位 = state==WriteOutput?~FSL_M_Full:0
FSL_S_Read:从设备从总线读数据的标志位 = state==ReadInput?FSL_S_Exists:0
FSL_M_Full:总线发出总线满信号
FSL_S_Exists:总线发出总线上有数据的信号
自定义IP核方面,如果修改了自定义IP核的底层文件.v文件,就要删除XPS中所有关于该自定义IP核的网络,再重新添加,否则修改了等于没修改。应该是ISE的一个BUG,
没修改XPS一个小地方,都要实时更新一下,XPS——>project——>rescan user repositories 最后再生成bit文件,如果microblaze加入到ISE工程当中,就要ISE全部重新编译了,注意是全部编译,选中microblaze,右击下面的export hardware design to sdk with bitstream 选择run all。这样才会更新XPS更新的IP核文件。
在SDK中,读取FSL总线和往FSL总线中写数据需要用到函数:
val是要从FSL总线写的数据 或者要从总线读的数据,id是FSL的标号。如果有多条FSL总线,每条FSL总线都会有一个id(0.1.2.3)
有时间更新具体操作步骤
建立好FSL总线之后,会生成一个.v文件,文件名与自定义IP核名字相同。
主要有以下一些接口
// Definition of Ports // FSL_Clk : Synchronous clock // FSL_Rst : System reset, should always come from FSL bus // FSL_S_Clk : Slave asynchronous clock // FSL_S_Read : Read signal, requiring next available input to be read // FSL_S_Data : Input data // FSL_S_Control : Control Bit, indicating the input data are control word // FSL_S_Exists : Data Exist Bit, indicating data exist in the input FSL bus
<pre name="code" class="plain">// FSL_M_Clk : // FSL_M_Read : Read signal, requiring next available input to be read // FSL_M_Data : Input data // FSL_M_Control : Control Bit, indicating the input data are control word // FSL_M_Exists
</pre><pre name="code" class="plain">
FSL_Clk 是总线时钟,FSL_Rst是总线复位(高电平有效!!!!!!)
时钟:
FSL_M_Clk:主设备给FSL总线提供的时钟信号(ip核中不用)
FSL_S_Clk:从设备给FSL总线提供的始终信号(ip核中不用)
数据(32bit):
FSL_M_Data:32bit,主设备发送到总线上的数据
FSL_S_Data:32bit,总线发给从设备的数据
控制(1bit)
FSL_M_Control:主设备发给总线的控制信号(ip核中不用)
FSL_S_Control:总线发给从设备的控制信号(ip核中不用)
FSL_M_Write:主设备正在写总线的标志位 = state==WriteOutput?~FSL_M_Full:0
FSL_S_Read:从设备从总线读数据的标志位 = state==ReadInput?FSL_S_Exists:0
FSL_M_Full:总线发出总线满信号
FSL_S_Exists:总线发出总线上有数据的信号
自定义IP核方面,如果修改了自定义IP核的底层文件.v文件,就要删除XPS中所有关于该自定义IP核的网络,再重新添加,否则修改了等于没修改。应该是ISE的一个BUG,
没修改XPS一个小地方,都要实时更新一下,XPS——>project——>rescan user repositories 最后再生成bit文件,如果microblaze加入到ISE工程当中,就要ISE全部重新编译了,注意是全部编译,选中microblaze,右击下面的export hardware design to sdk with bitstream 选择run all。这样才会更新XPS更新的IP核文件。
在SDK中,读取FSL总线和往FSL总线中写数据需要用到函数:
getfsl(val, id) putfsl(val, id)
val是要从FSL总线写的数据 或者要从总线读的数据,id是FSL的标号。如果有多条FSL总线,每条FSL总线都会有一个id(0.1.2.3)
有时间更新具体操作步骤
相关文章推荐
- 表格 标签属性
- Ubuntu档案权限学习笔记
- Karma-Jasmine 安装和使用
- UGUI
- shell上线脚本
- QProcess start
- 动态代理可以使代理模式更加灵活
- ArrayAdapter ,SimpleAdapter ,SimpleCursorAdapter 区别
- 28 Number spiral diagonals - Project Euler +
- CSS自适应内容宽度示例
- [转]内模式、模式、外模式、物理层、逻辑层、应用层
- Java代码性能优化总结 推荐收藏
- 决策树概括
- 每天喝几杯茶最易患癌
- ASP.NET动态网站制作(24)-- ADO.NET(3)
- css 数字出现滚动条解决
- mvc4.5 中@Ajax.ActionLink为何老是在新窗口中打开页面呢
- 黑马程序员---自学随堂笔记----集合
- Fragment使用(一)
- 配置haproxy日志支持(rsyslog日志支持)