废话不说了,下面进入正题,学习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
该文件用于解决通过java控制串口发送数据给时在Linux环境下报错,但在windows环境下正常。
报错内容如下:[librxtxSerial.so+0x75da]Java_gnu_io_RXTXPort_nativeDrain+0xea。
经过一番研究得出结论为为rxtx包版本问题,使用本文档中的版本即可正常运行
2025/11/8 20:33:57 39.61MB linux java 串口
1
apk反编译工具,更多详情请访问https://ibotpeaches.github.io/Apktool/或者百度apktool.jar简介:一个反向工程的工具,第三方,封闭,二进制Android应用程序。
它可以将资源解码到几乎原始的形式,并在修改后重建它们。
它也使应用程序更容易,因为项目的文件结构和自动化的一些重复性的任务,如重新构建APK等。
它不是用于盗版和其他非合法用途。
它可以用于本地化、添加自定义平台的某些特性或支持、分析应用程序等。
2025/11/7 13:57:29 8.62MB apktool apktool2.3.3 apktool.jar
1
操作系统思维导图xmind,分为计算机系统概述、进程管理、内存管理、文件管理、IO外设管理,及其内部再细分
2025/10/29 1:22:16 199KB 操作系统
1
在云中渲染Blender3D场景(使用Docker)一个简单的Web应用程序,可使用自定义文本呈现3D场景。
使用dockerrun-p8080:8080gcr.io/as-a-service-dev/renderAPI网址参数:text:要渲染的文本,默认为HELLO。
scene:要渲染的.blend文件的名称(不带扩展名),默认为basic,其他受支持的值是outrun和outrun-filter。
示例:/?text=OUTRUN&scene=outrun带上自己的3D场景:创建一个Blender场景,您的场景必须包含一个名称为Text的文本对象,将您的.blend文件添加到models/文件夹中,在本地运行服务器使用dockerbuild.-trenderdockerbuild.-trender从dockerrun-p8080:8080render在浏览器中打开http://localhost:8080/?text=Hey
2025/10/28 22:48:40 415KB docker microservice blender container
1
WonderWareIntouch2014R2平台中DAServer(io)驱动程序配置文件所在路径及文件名说明
2025/10/26 20:07:11 230B Intouch2014R2 WonderWare DAServer SMC
1
docker-ce_V19.03.11及其依赖,含:audit-2.8.5-4.el7.x86_64.rpmlibcgroup-0.41-21.el7.x86_64.rpmaudit-libs-2.8.5-4.el7.x86_64.rpmlibsemanage-2.5-14.el7.x86_64.rpmaudit-libs-python-2.8.5-4.el7.x86_64.rpmlibsemanage-python-2.5-14.el7.x86_64.rpmcheckpolicy-2.5-8.el7.x86_64.rpmlvm2-2.02.186-7.el7_8.2.x86_64.rpmcontainerd.io-1.2.13-3.2.el7.x86_64.rpmlvm2-libs-2.02.186-7.el7_8.2.x86_64.rpmcontainer-selinux-2.119.1-1.c57a6f9.el7.noarch.rpmpolicycoreutils-2.5-34.el7.x86_64.rpmdevice-mapper-1.02.164-7.el7_8.2.x86_64.rpmpolicycoreutils-python-2.5-34.el7.x86_64.rpmdevice-mapper-event-1.02.164-7.el7_8.2.x86_64.rpmpython-IPy-0.75-6.el7.noarch.rpmdevice-mapper-event-libs-1.02.164-7.el7_8.2.x86_64.rpmselinux-policy-3.13.1-266.el7.noarch.rpmdevice-mapper-libs-1.02.164-7.el7_8.2.x86_64.rpmselinux-policy-targeted-3.13.1-266.el7.noarch.rpmdevice-mapper-persistent-data-0.8.5-2.el7.x86_64.rpmsetools-libs-3.3.8-4.el7.x86_64.rpmdocker-ce-19.03.11-3.el7.x86_64.rpmyum-utils-1.1.31-54.el7_8.noarch.rpmdocker-ce-cli-19.03.11-3.el7.x86_64.rpm
2025/10/21 14:17:49 102.22MB docker kubernetes PAAS
1
osg-3.6.3osgEarth-2.10.0chm帮助文档OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。
它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;
而更低层次的OpenGL硬件抽象层(HAL)实现了底层硬件显示的驱动。
2025/10/18 7:48:25 86.72MB chm sdf
1
commons-fileupload-1.2.2.jar,commons-io-1.4.jar,jodconverter-2.2.2.zip,jodconverter-cli-2.2.2.jar,jodconverter-core-3.0-beta-4.jar五个jar包
2025/10/10 22:54:36 2.23MB java 在线预览 需要的jar包
1
资源是基于Stm32F407的代码,可以在正点原子探索者上面非常好的运行,代码的作用是轮询扫描共计24路的ADC接口并且将得到的ADC的值保存在数组中,最终通过屏幕的方式显示出来(使用开发板的时候很多IO被内置上下拉,这不是程序错了,是实际的硬件连接导致的,在实际使用中这个是不需要担心)
2025/9/30 19:16:18 509KB 正点原子 ADC+DMA Stm32F407
1
共 640 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡