☆让我们来做Blogroll☆

- 如果您是一位FPGA Design/Embedded Design设计师
- 如果您有主要用于记录技术经验的Blog
- 如果您的Blog主要发表原创文章或者外文翻译
- 如果您也想交换链接

那么当您提交《申请链接表单》后,我会将您的网站添加到友情链接的Blogroll栏目中。
- 首次尝试接受10位朋友的申请 --> 还有5个名额哦
- 仅接受相关技术站点
- 暂不接受商业站点
- 仅提供文字链接
- Ricky拥有最终解释权
Jul 2
Ethernet Lite MAC 功能
- 功能
接口: MII
速度: 10M/100M bps (时钟速率必须大于以太网速度的一半)
支持半双工和全双工 ( C_DUPLEX 参数控制)
可选的乒乓Buffer (C_TX_PING_PONG 和 C_RX_PING_PONG 参数控制)

- 限制
不支持多播 - 只支持单播和广播。(Datasheet第23页)
不支持Jumbo Frame - 仅支持标准的1500Byte长度的Frame。
不支持Burst - 使用了plbv46_slave_single_v1_00_a作为PLB接口,不支持Burst操作

Ethernet Lite MAC 结构
点击在新窗口中浏览此图片
Tags:
Jul 2
我也是第一次知道有这么个工具:只要有布线后的NCD网表,就可以通过ReportGen工具产生各种报告文档,比如clock region report, delay report, pad report, unrouted net report等等。

直接在命令行中输入reportgen就能查看使用说明。
Jun 16
点击在新窗口中浏览此图片

1. 安装RHEL5. 由于害怕缺少某些库到时候再找很麻烦,于是求省事把RHEL5完全安装了。64位CPU, 16G内存, 设置了32G的SWAP。其他缺省。
2. 放入ISE 11.1 DVD,RHEL5 自动 mount 到 /media/Xilinx_ISE11_DS
3. 尝试了在光盘中执行 ./xsetup,发现Permission Denied。
4. 无奈把光盘拷贝到本地硬盘然后执行
cp -R /media/Xilinx_ISE11_DS ~/ --拷贝到用户目录
chmod -R 777 ~/Xilinx_ISE11_DS/  --添加执行权限和写权限
~/Xilinx_ISE11_DS/xsetup --开始安装

5. 安装很快,ISE套装不含EDK版本只装了10分钟不到。
6. 配置License。在Copy License那里选择Choose,然后选中申请好的xilinx.lic文件,然后OK,就会自动把License复制到相应的地方,并显示出有哪些功能可用。
7. 打开一个Shell,运行ISE
source /opt/Xilinx/11.1/settings64.csh  --这是我的安装目录
ise &

8. 在安装目录中可以发现settings32.csh和settings64.csh,说明如果CPU是64位的,ISE会把32位和64位软件全部安装上的。只要source相应的settings,就可以执行32位或64位版本。
9. settings脚本有csh和sh之分。其中csh是给CShell用的,sh是给Bash用的。如果要更改用户使用的shell,可以让root修改/etc/passwd文件。
10. 如果觉得每次运行都要打命令行比较麻烦,可以在桌面上做一个快捷方式。
- 把以下内容存成一个文件(我叫ise.csh):
#!/bin/csh
source /opt/Xilinx/11.1/settings64.csh  --这是我的安装目录
ise &

- 给这个文件添加执行权限:
chmod +x ise.csh

- 然后把这个ise.csh移动到桌面,在双击弹出窗口中按RUN就可以运行ISE了。
Tags: ,
Jun 12
微处理器经常要与外部逻辑交互数据 - 可能是ISE里面自己写的逻辑,也可能是Sysgen中的逻辑,当然还可能是片外的逻辑。

交互数据有哪些方法?通常万变不离其宗
- Shared Memory: 双向给地址给数据/取数据
- FIFO:单向顺序给/取数据
- Register:单向选中后给/取数据

最常用的是Shared Memory。
FPGA内部有双口BRAM,两边都可以进行数据的读写,数据交互是双向的。

FIFO在一个模块往另一个模块灌数据时比较有用,优点是不用在意地址的产生。

因为Register无法缓存数据,必须一边给了数据后一边直接取走,所以交换数据时不常用。应用场合更适合控制寄存器。最常用的情况就是EDK系统要控制EDK外部的逻辑,比如给出一个使能信号等。

-----------<方法与操作的分割线>---------

EDK中的操作方法:

Shared Memory使用 XPS_BRAM_IF_CNTLR + BRAM_BLOCK。
XPS_BRAM_IF_CNTLR 接在 PLBv46 Bus 上,在Address页面分配相应的Size和Address。这里设的Size就是使用到的BRAM的大小。
BRAM_BLOCK 的 PORTA 接在 XPS_BRAM_IF_CNTLR 上,PortB Bus 设成 Not Connected,在Port页面将 PortB 所有的IO都 Make External。

FIFO 可以直接使用 FSL Core。
FSL 可以指定使用 BRAM 作为 FIFO,也可以指定使用 Slice 作为 FIFO。根据需求来选择。

Register 可以使用 GPIO Core。
C代码直接寻址然后做数据操作速度会比较快。用Driver中的函数来操作就会比较慢。
Tags:
Jun 11

XMD - Verify ELF

RickySu , 16:31 , 技术经验 , 评论(0) , 引用(0) , 阅读(68) , Via 本站原创
XMD的Verify ELF功能在一次调试中帮了大忙。

出问题的情况很奇怪:
- 把Application Initialize to BRAM的时候程序工作不正常
- 用XMD再把程序dow一次,又正常了。

怀疑data2mem出问题,可以BRAM里面又是有值的。

于是怀疑这些值的正确性。用XMD的Verify ELF功能比较BRAM的内容和ELF的内容,结果发现的确有不相符的地方。那就确认是DATA2MEM的过程中出问题了。

此外,Verify ELF还可以用在Flash Writer烧写Flash后检查烧写是否正确:
- 在Bootloader完成,要进行PC指针跳转的最后一步设断点把程序停住,此时Flash中的SREC已经被Bootloader放到了DDR中
- 在XMD中运行Verify ELF检查DDR中的内容是否正确。
Tags: , ,
分页: 1/33 第一页 1 2 3 4 5 6 7 下页 最后页 [ 显示模式: 摘要 | 列表 ]