废话不说了,下面进入正题,学习FPGA经历了这么几个阶段:①、Verilog语言的学习,熟悉Verilog语言的各种语法。
②、FPGA的学习,熟悉QuartusII软件的各种功能,各种逻辑算法设计,接口模块(RS232,LCD,VGA,SPI,I2c等)的设计,时序分析,硬件优化等,自己开始设计简单的FPGA板子。
③、NiosII的学习,熟悉NiosII的开发流程,熟悉开发软件(SOPC,NiosIIIDE),了解NiosII的基本结构,设计NiosII开发板,编写NiosIIC语言程序,调试板子各模块功能。
先来说说第一个阶段,现在主要的硬件描述语言有VHDL,Verilog两种,在本科时老师一般教VHDL,不过现在Verilog用的人越来越多,其更容易上手(与C语言语法比较类似),也更灵活,现在的IC设计基本都用Verilog。
像systemC,systemVerilog之类的应该还在萌芽阶段,以后可能会有较大发展。
鉴于以上原因我选择了Verilog作为我学习的硬件描述语言。
其实有C语言的基础,学起Verilog的语言很简单,关键要有并行的概念,所有的module,assign,always都是并行的,这一点与软件语言有明显不同。
这里推荐几本评价比较好的学习Verilog的书籍:①、《verilog数字系统设计教程》,这本书对于入门是一本很好的书,通俗易懂,让人很快上手,它里面的例子也不错。
但本书对于资源优化方面的编程没有多少涉及到。
②、《设计与验证VerilogHDL》,这本书虽然比较薄,但是相当精辟,讲解的也很深入,很多概念看了这本书有种豁然开朗的感觉,呵呵。
学习Verilog其实不用看很多书,基本的语法部分大家都一样,关键是要自己会灵活应用,多做练习。
Verilog语言学了一段时间,感觉自己可以编点东西,希望自己编的程序在板子上运行看看结果,下面就介绍我学习的第二个阶段。
刚开始我拿了实验室一块CPLD的开发板做练习,熟悉QuartusII的各种功能,比如IP的调用,各种约束设置,时序分析,Logiclock设计方法等,不过做到后面发现CPLD的资源不太够(没有内嵌的RAM、不能用SignalTapII,LE太少等),而实验室没有FPGA开发板,所以就萌生了自己做FPGA开发板的意图,刚好Cadence我也学的差不多了,就花了几天时间主要研究了FPGA配置电路的设计,在板子上做了Jtag和AS下载口,在做了几个用户按键和LED,其他的口全部引出作为IO口,电路比较简单,板子焊好后一调就通了(心里那个爽啊...)。
我选的FPGA是cycloneII系列的EP2C5,资源比以前的FPGA多了好几倍,还有PLL,内嵌的RAM,可以试试SignalTapII,用内嵌的逻辑分析仪测试引脚波形,对于FPGA的调试,逻辑分析仪是至关重要的。
利用这块板子我完成了项目中的几个主要功能:RS232通信,指令译码,配置DDS,AD数据高速缓存,电子开关状态设置等,在实践中学习起来真的比平时快很多,用到什么学什么动力更大。
这个时候我主要看的数据有这几本感觉比较好:①、《AlteraFPGA/CPLD设计(基础篇)》:讲解一些基本的FPGA设计技术,以及QuartusII中各个工具的用法(IP,RTL,SignalProbe,SignalTapII,TimingClosureFloorplan,chipEditor等),对于入门非常好。
②、《AlteraFPGA/CPLD设计(高级篇)》:讲解了一些高级工具的应用,LogicLock,时序约束很分析,设计优化,也讲述了一些硬件编程的思想,作为提高用。
③、《FPGA设计指南--器件,工具和流程》:这本书看了他的目录忍不住就买了,这本书讲述了FPGA设计的各个方面,虽然每个方面都是点到为止,但能让你有个整体的概念,了解FPGA的所有设计功能,了解FPGA开发的整个流程。
2025/11/11 0:01:05 131.03MB FPGA 学习 文档 合集
1
扩充pl\0编译器设计之词法分析程序内嵌函数:voidclearToken();//清空token字符数组intisSpace();//空格intisNewline();//换行符intisTab();//TabintisLetter();//字母intisDigit();//数字intisColon();//冒号:intisComma();//逗号,intisSemi();//分号;intisEqu();//等号=intisPlus();//加号+intisMinus();//减号-intisDivi();//除号/intisStar();//乘号*intisLpar();//左括号(intisRpar();//右括号)intisLbrack();//左中括号[intisRbrack();//右中括号]intisLbrace();//左大括号{intisRbrace();//右大括号}intisLss();//小于号intisPeriod();//点号.intisQmark();//单引号'intisDqmark();//双引号"intisStringElement();//字符串合法字符,ASCII码值为32,33,35-126的字符voidcatToken();//每次调用前把当前ch中的字符与token字符数组中的字符串联结voidretract();//将读字符指针后退一个字符voidreserve();//保留字voidlexical_error();//错误处理过程
2025/10/25 4:07:18 274KB 编译原理 词法分析 pl\0
1
JTrac是一个开源且可高度配置的问题追踪的Web应用程序。
可以用于缺陷管理系统。
JTrac内嵌了Jetty服务器和HSQLDB数据库。
只要JDK安装好,解压后,经过简单配置即可使用。
2025/8/31 14:25:04 59.4MB jtrac-2.1.0 JTrac 缺陷管理系统
1
实现qt内嵌ie与js交互,主要实现两种方式,一种js主动调用,一种是qt传递idispatch给js,然后通过该对象调用
2025/8/8 8:26:03 62KB qaxwidget
1
winform内嵌Google浏览器Chrome能与js前端页面交互
2025/7/17 6:22:16 31KB Chrome JS
1
ppt内嵌的辅助插件,含有多种模板和更加人性化的操作技术,支持win7以上的windows版本。
2025/7/14 2:29:44 11.73MB office
1
众所周知,IE浏览器的性能是很差的,特别在使用诸如WebQQ2.0这样的丰富的网页应用时,你就能明显感觉到IE的内核和谷歌浏览器的webkit内核之间的性能差异了,那么有没办法提高IE的性能呢?ChromeFrame是Google推出的一个针对IE6,7,8开发的免费开源的浏览器插件,它可以让IE浏览器使用上webkit内核。
使用该插件后,用户的IE将获得和Chrome浏览器一样的高性能和丰富的功能,例如高速的Javascript引擎、支持HTML5、CSS3等新特性……用IE的壳,装上Chrome的芯ChromeFrame插件实际上就是可以让用户的浏览器外观依然是IE的菜单和界面,但当用户浏览网页时,实际上使用的是GoogleChrome浏览器的内核来对页面进行运算解析和渲染。
简单地说,就是用IE的壳,装上Chrome的芯。
IE在安装了ChromeFrame后,Acid测试达到了100分满分使用谷歌浏览器内嵌框架ChromeFrame的优势:IE6提速40倍,IE8提速10倍提高您的网页浏览速度在使用谷歌浏览器的内嵌框架后,浏览网站可获得更快的响应速度和性能。
使用更多高级功能通过谷歌浏览器内嵌框架,你的浏览器可以等到诸如HTML、CSS3等新功能的支持。
不会改变您原来的上网方式谷歌浏览器内嵌框架ChromeFrame依然使用IE的界面和菜单,不会改变你原来的上网习惯。
禁用和卸载ChromeFrame的方法:因为国内很多例如网上银行之类的应用只支持万恶的IE,当你需要禁用ChromeFrame时,只需要:1.工具-管理加载项2.在工具栏和扩展中,找到ChromeFrameBHO.3.禁用它另外,卸载ChromeFrame的话,只要在控制面板中像卸载普通软件一样卸载即可。
2025/4/30 18:09:44 30.86MB IE Chrome
1
此为PDF电子书.要源码的见我其他下载资源.总共4个分卷,此为第1个.下全了才能正常解压.国内电子设计界著名教授北航夏宇闻又一力作!本书是《Verilog数字系统设计教程》(第2版)的姊妹篇。
内容简介回到顶部↑VerilogSOPC高级实验教程是为学习Verilog语言之后,想在FPGA上设计并实现嵌入式数字系统的人们而专门编写的。
本实验教程是《Verilog数字系统设计教程》(第2版)的后续课程,是姊妹篇。
本书通过由浅入深的10个实验,详细地介绍了ModelSim6.0和QuartusⅡ8.1的操作步骤,扼要地介绍了QuartusⅡ8.1的主要设计资源和SOPCBuilder等工具的应用方法,并阐述了如何配合自己设计的Verilog模块和FPGA中的内嵌处理器NiosⅡ等现成IP资源,设计并实现高性能嵌入式硬件/软件系统。
本实验教程也可以作为集成电路设计专业系统芯片(SoC)前端逻辑设计和验证课程的实验教材。
为了使阐述的内容更加具体,本教程中的每个实验均选用AlteraFPGA(型号为CycloneⅡEP2C35F672C8)实现,并在革新科技公司专业级实验平台GXSOC/SOPC运行通过。
本书可作为电子信息、自动控制、计算机工程类大学本科高年级学生和研究生的教学用书,亦可供其他工程技术人员自学与参考。
目录回到顶部↑第1讲ModelSimSE6.0的操作 1.1创建设计文件的目录 1.2编写RTL代码 1.3编写测试代码 1.4开始RTL仿真前的准备工作 1.5编译前的准备、编译和加载 1.6波形观察器的设置 1.7仿真的运行控制 总结 思考题第2讲Quartus8.1入门 2.1QuartusⅡ的基本操作知识 2.2QuartusⅡ的在线帮助 2.3建立新的设计项目 2.4用线路原理图为输入设计电路 2.5编译器的使用 2.6对已设计的电路进行仿真 2.7对已布局布线的电路进行时序仿真 总结 思考题.第3讲用Altera器件实现电路 3.1用CycloneⅡFPGA实现电路 3.2芯片的选择 3.3项目的编译 3.4在FPGA中实现设计的电路 总结 思考题第4讲参数化模块库的使用 4.1在QuartusⅡ下建立引用参数化模块的目录和设计项目 4.2在QuartusⅡ下进入设计资源引用环境 4.3参数化加法-减法器的配置和确认 4.4参数化加法器的编译和时序分析 4.5复杂算术运算的硬件逻辑实现 总结 思考题第5讲锁相环模块和SignalTap的使用第6讲QuartusⅡSOPCBuilder的使用第7讲在NiosⅡ系统中融入IP第8讲LCD显示控制器IP的设计第9讲BitBLT控制器IP第10讲复杂SOPC系统的设计本书的结束语附录GXSOC/SOPC专业级创新开发实验平台
2025/4/23 21:32:17 11.44MB Verilog SOPC FPGA
1
此资源是c#开发的websocket服务端启动服务:Install.bat卸载服务:Uninstall.bat修改端口:WebSocketService.exe.config(ws服务端的地址和端口,内嵌socket客户端绑定的socket服务端的地址和端口)测试环境:winserver2008R2(vs2008,.netframe4)如有疑问请留言学习沟通!使用方法见:https://blog.csdn.net/uaime/article/details/86219042
1
单类模块实现子类化消息拦截示例(PctGL版)这个类模块采用内嵌汇编技术,实现了单类模块化,不再需要AddressOf与标准模块了.对于工程的结构有帮助.
2024/12/31 12:18:35 11KB 子类化 VB6
1
共 82 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡