ZedBoard学习(6)-System Generator实现串口通信(一行HDL代码都不用写)
2012-12-02 12:55
183 查看
一直都在System Generator下做图像处理相关的算法,感觉SysGen挺强大的,前几天突发奇想,能否直接用SysGen实现数据的通信呢,毕竟一句HDL代码都不写对于做FPGA的人来说却是很有吸引力的。
串口通信协议比较简单,发送的时候,8位数据的前面加上1位起始位0,在8位数据后加上停止位1,这样8位数字扩展成10位的数字,再将并行转化为串行就可以从GPIO送出。
搭建模型如下:
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354362983_19e57823.jpg)
模型因为暂时只是包含发送部分,所以不是很复杂,另外加上一个按键,每次按下按键式就发送数据。
选择板子型号:
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363075_7610d9e0.jpg)
设置时钟:
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363091_e907e6ff.jpg)
点击Generate,转化为HDL Netlist,这是会在文件夹下多出一个文件夹,里面有一个ISE工程,使用ISE打开,修改UCF文件。
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363244_dc302203.jpg)
//UCF文件:
NET "clk" LOC = Y9 | IOSTANDARD=LVCMOS33; # "GCLK"
NET "ce" LOC = P16 | IOSTANDARD=LVCMOS18; # "BTNC"
//NET "rxd" LOC = Y11 | IOSTANDARD=LVCMOS33; # "JA1"
NET "gateway_out[0]" LOC = AA11 | IOSTANDARD=LVCMOS33; # "JA2"
NET "gateway_in[0]" LOC = T18 | IOSTANDARD=LVCMOS18; # "BTNU"
综合布线生成bitstream文件之后,直接下载。按下BTNU就会有数据发出。我在初始化的时候写入的是0->255,在串口助手中也能看到连续的数字。
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363377_8621317a.jpg)
目前只是实现了串口的发送,毕竟这个相对于接收还是比较简单的,还没想好接收怎么写,先跟大家分享下吧~~
串口通信协议比较简单,发送的时候,8位数据的前面加上1位起始位0,在8位数据后加上停止位1,这样8位数字扩展成10位的数字,再将并行转化为串行就可以从GPIO送出。
搭建模型如下:
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354362983_19e57823.jpg)
模型因为暂时只是包含发送部分,所以不是很复杂,另外加上一个按键,每次按下按键式就发送数据。
选择板子型号:
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363075_7610d9e0.jpg)
设置时钟:
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363091_e907e6ff.jpg)
点击Generate,转化为HDL Netlist,这是会在文件夹下多出一个文件夹,里面有一个ISE工程,使用ISE打开,修改UCF文件。
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363244_dc302203.jpg)
//UCF文件:
NET "clk" LOC = Y9 | IOSTANDARD=LVCMOS33; # "GCLK"
NET "ce" LOC = P16 | IOSTANDARD=LVCMOS18; # "BTNC"
//NET "rxd" LOC = Y11 | IOSTANDARD=LVCMOS33; # "JA1"
NET "gateway_out[0]" LOC = AA11 | IOSTANDARD=LVCMOS33; # "JA2"
NET "gateway_in[0]" LOC = T18 | IOSTANDARD=LVCMOS18; # "BTNU"
综合布线生成bitstream文件之后,直接下载。按下BTNU就会有数据发出。我在初始化的时候写入的是0->255,在串口助手中也能看到连续的数字。
![](http://maxim.eefocus.com/include/picture/500/400/data/12-12/1354363377_8621317a.jpg)
目前只是实现了串口的发送,毕竟这个相对于接收还是比较简单的,还没想好接收怎么写,先跟大家分享下吧~~
相关文章推荐
- ZedBoard学习(6)-System Generator实现串口通信(一行HDL代码都不用写)
- 【算法学习】一行核心代码实现阶乘函数和Fibonacci数列
- 如何不用写一行代码就能学习软件开发
- 不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题
- 不用写一行代码,用MFC向导实现的文本编辑器(类似Windows下的记事本)
- Xcode中不用一行代码实现button圆角
- 不用一行代码实现DBGRIDEh的标题按钮排序!
- 在linux上一行代码不用写实现自动采集+hadoop分词
- 如何不用写一行代码就能学习软件开发
- 在linux上一行代码不用写实现自动采集+hadoop分词
- 后缀数组的学习(三):SA数组实现代码分析
- 【干货】一行代码实现自定义转场动画
- 数据结构学习-线性表-链表的代码实现
- 一行代码完成 调用系统相册 和 视频,语音库,选择图片,视频,和音频文件。在选择界面实现了录制视频和录制音频功能。 截图
- 不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD
- 学习python之编写简单乘法口诀表实现代码
- 一致性哈希算法学习及JAVA代码实现分析
- 黑马程序员之HTML学习笔记:rowspan属性实现HTML表格中一列跨越多行,colspan 属性实现HTML表格中一行跨越多列
- android:一行代码实现沉浸式布局效果
- Windows NT/2000/XP下不用驱动的Ring0代码实现