第10章综合创新实验名师编辑PPT课件.ppt
《第10章综合创新实验名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《第10章综合创新实验名师编辑PPT课件.ppt(55页珍藏版)》请在优知文库上搜索。
1、1综合创新实验2提纲l1、设计任务l2、设计分析l3、FPGA设计基础l4 模块分析l5 驱动设计l6 测试程序设计l7 GUI程序设计31.设计任务l设计题目:FGPA扩展子板系统设计l设计内容:扩展一块FPGA子板,合理选用FPGA器件。有效使用XSBase255扩展槽资源。扩展以下硬件资源:16键键盘、8个LED灯、拨码开关、2路A/D和D/A。4l设计要求 l合理选择各种元器件,包括FPGA、A/D、D/A芯片。l合理使用XSBase255开发系统扩展槽资源,设计原理图,要考虑子板和母板的安装。布局图:5l软件测试要求:lLED显示lA/DlD/A lKeyPadl开关量输入 62.设
2、计分析设计分析 l嵌入式系统项目开发流程要经历项目分析、设计和实现与维护四个阶段 l本设计:前期准备 FPGA逻辑设计 设备驱动设计 驱动测试 GUI应用程序设计 73.FPGA3.FPGA设计基础设计基础 l可编程逻辑器件简介可编程逻辑器件简介 什么是FPGA?什么是CPLD?FPGA与CPLD的主要区别 为什么要使用CPLD/FPGA?可编程逻辑器件有哪些?如何使用可编程逻辑器件进行开发?如何使用Xscale和FPGA进行开发?83.1 VHDL语言介绍语言介绍l随着EDA技术的发展,使用硬件描述语言(HDL)设计CPLD/FPGA成为一种趋势lVHDL的程序结构特点是将一项工程设计,分成
3、外部(端口)和内部(涉及实体的内部功能实现部分)lVHDL主要用于描述数字系统的结构、行为、功能和接口,跟原理图有对应的关系 9l一个简单的VHDL例子:ENTITY REG12 IS-外部端口定义:数据,时钟,输出 PORT(d:IN BIT_VECTOR(11 DOWNTO 0);clk :IN BIT;q :OUT BIT_VECTOR(11 DOWNTO 0);END REG12;-内部实体逻辑ARCHITECTURE a OF REG12 ISBEGIN PROCESS BEGIN WAIT UNTIL clk=1;-等待时钟上升沿 q private_data;/*判断是否设置了允
4、许键盘产生中断*/if(readb(f_b_p-ICNTR_VIR_ADDR)&KEY_EN)/*如果设置了允许键盘产生中断,程序向下执行*/if(filp-f_flags&O_NONBLOCK)/*如果设置了非阻塞就立刻返回*/return-EAGAIN;wait_event_interruptible(f_b_p-key_readq,f_b_p-key_int_occur);/*睡眠点*/f_b_p-key_int_occur=0;value=(readb(f_b_p-KEY_VIR_ADDR)&KEY_VALID_VAL);/*读取键值*/copy_to_user(buff,&value
5、,count);/*将键值返回给应用程序*/31lpoll方法分两步完成l第一步,poll方法需要将所有这些可让进程睡眠的事件队列都加入到poll_table结构的链表中 l第二步是返回一个用来描述操作是否可以立即无阻塞执行的位掩码 32lPoll方法代码如下:static unsigned int fpga_board_poll(struct file*filp,poll_table*wait)unsigned int mask=0;FPGA_BOARD*f_b_p;f_b_p=filp-private_data;poll_wait(filp,&f_b_p-key_readq,wait);/
6、*键盘 */poll_wait(filp,&f_b_p-sw_readq,wait);/*拨码开关*/poll_wait(filp,&f_b_p-ad_readq,wait);/*AD控制器*/if(f_b_p-key_int_occur|f_b_p-sw_int_occur|f_b_p-ad_int_occur)mask|=POLLIN|POLLRDNORM;return mask;33lfasync方法l当应用程序修改文件描述符的FASYNC标志(filp-f_flags)时,该方法就会被调用。fasync方法代码如下:static int fpga_board_fasync(int fd
7、,struct file*filp,int mode)FPGA_BOARD*f_b_p;f_b_p=filp-private_data;return fasync_helper(fd,filp,mode,&f_b_p-fasync);34l中断处理函数l在注册中断号中,使用如下函数:参数filp用于传递信息给中断处理函数,中断处理函数通过参数dev_id接收l中断处理函数的代码,以键盘为例:request_irq(IRQ_GPIO(GPIO_X),board_irq_handle,SA_INTERRUPT|SA_SHIRQ,INT_OWNER,filp);35static void board
8、_irq_handle(int irq,void*dev_id,struct pt_regs*regs)FPGA_BOARD*f_b_p;struct file*flip;char icntr_cur=0,iflag_cur=0;flip=(struct file*)dev_id;f_b_p=(FPGA_BOARD*)flip-private_data;if(f_b_p-fasync)kill_fasync(&f_b_p-fasync,SIGIO,POLL_IN );wake_up_interruptible(&f_b_p-key_readq);f_b_p-key_int_occur=1;36
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 综合 创新 实验 名师 编辑 PPT 课件