废话不说了,下面进入正题,学习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
编译原理语法制导翻译器带文档一、需求分析………………………………………………2二、设计目的………………………………………………2三、设计思想………………………………………………23、1语法制导定义……………………………………23、2设计思想…………………………………………33、3基本思路…………………………………………4四、设计内容………………………………………………4五、设计流程图……………………………………………5六、程序调试与测试………………………………………66、1调试过程中出现的问题以及解决方案…………66、2测试过程…………………………………………66、3用户说明…………………………………………8七、个人任务………………………………………………8八、课程设计总结…………………………………………9九、参考文献………………………………………………99、1参考书籍…………………………………………99、2参考网址………………………………………10十、程序代码清单…………………………………………10
2025/10/30 3:11:05 194KB 编译原理语法制导翻译器
1
学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。
或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。
所谓“寸有所长,尺有所短”就是这个道理。
一般来说,GDB主要帮忙你完成下面四个方面的功能:从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。
让我们
2025/10/18 7:05:37 170KB linuxc/c++GDB教程详解
1
1绪论41.1课题背景41.2智能家居控制系统的概述51.3课题研究的目的及意义61.4系统设计主要任务62方案设计72.1系统总体设计与分析72.1.1单片机控制部分72.1.2系统工作流程部分82.2远程控制设计与分析82.2.1控制系统设计分析82.2.2控制要求92.2.3单元功能模块92.3传感器信号采集设计与分析92.3.1防火灾发生传感器92.3.2可燃气体泄漏传感器102.3.3防盗传感器102.3.4信号采集设计与分析102.4GSM模块的接口与设计102.4.1TC35模块组成102.4.2TC35模块通信电路102.4.3TC35模块与MCU连接方式102.5红外学习遥控设计112.5.1红外学习遥控的设想112.5.2红外学习遥控的实现113硬件电路设计123.1相关芯片及模块简介123.1.1MCUSM8952AC25P简介123.1.2双音多频收发器MT8870简介123.1.3ISD2500系列单片语音录放简介133.1.4固态继电器(SSR)简介133.2远程控制电路设计133.2.1振铃检测电路133.2.3双音频解码电路153.2.4语言提示电路163.3电源电路设计173.3.15V开关电源稳压器电路173.3.2其他电源稳压器电路173.4TC35短消息模块电路设计173.4.1TC35短消息模块接口电路173.4.2TC35短消息模块控制设计183.5红外学习遥控电路设计193.5.1红外学习遥控接收电路设计193.5.2红外学习遥控发送电路设计194软件部分194.1下位机编程194.1.1主控单片机系统软件设计194.1.2远程控制程序设计214.1.3短信息发送程序设计224.1.4红外学习遥控程序设计234.2上位机(PC机)编程244.2.1用户界面的设计244.2.2串行通信的实现244.2.3控件MSComm使用方法255系统制作及调试265.1使用的仪器仪表及工具275.2硬件制作与调试275.2.1系统PCB板的设计275.2.2系统硬件调试275.3软件及联机调试285.3.1主控程序调试285.3.2短消息发送调试286结论29
1
ADI公司的无线收发芯片,程序中,频点直接输入即可,调用很方便。
该芯片是性价比比较高的芯片,目前广泛应用。
2025/3/17 17:26:12 2KB 无线通讯,自动抄表,ADI
1
《OpenGLES应用开发实践指南:Android卷》是一本系统的OpenGL三维游戏和动态壁纸开发指南。
由资深Android开发专家根据OpenGLES2.0版本撰写,不仅系统地讲解了OpenGLES的核心概念、技术,以及Android的图形机制,还通过大量案例讲解了在Android上进行OpenGLES开发的方法和技巧。
  《OpenGLES应用开发实践指南:Android卷》分为两部分,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;
第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控、纹理和基本原理,包括如何成功地初始化OpenGL并将数据发送到屏幕上,如何使用基本的向量和矩阵数学创建三维世界,以及Android的许多特定细节,比如在Dalvik虚拟机和本地环境之间编码数据(marshaldata)以及如何在主线程和渲染线程间安全地传送数据。
第二部分(第10~15章)详细介绍如何搭建三维世界中的效果,比如光照和地形渲染,以及如何创建可以运行在Android主屏幕上的动态壁纸。
此外,附录还提供了正交投影和透视投影两个OpenGL常用投影类型背后的矩阵知识,以及一些实用的应用程序调试技巧。
2025/2/1 3:25:16 58.99MB OpenGL ES Android
1
第一章 Delphi快速入门(一)第一章 Delphi快速入门(二)第一章 Delphi快速入门(三)第一章 Delphi快速入门(四)第一章 Delphi快速入门(五)第二章 Delphi面向对象的编程方法(一)第二章 Delphi面向对象的编程方法(二)第二章 Delphi面向对象的编程方法(三)第二章 Delphi面向对象的编程方法(四)第三章 字符串列表及应用(一)第三章 字符串列表及应用(二)第四章 文本编辑器的设计(一)第四章 文本编辑器的设计(二)第五章 Delphi图形图像编程(一)第五章 Delphi图形图像编程(二)第六章 文件管理(一)第六章 文件管理(二)第六章 文件管理(三)第七章 剪贴板和动态数据交换(一)第七章 剪贴板和动态数据交换(二)第八章 对象链接与嵌入(一)第八章 对象链接与嵌入(二)第九章 Delphi拖放编程第十章 动态链接库编程(一)第十章 动态链接库编程(二)第十一章 Delphi应用程序的应用(一)第十一章 Delphi应用程序的应用(二)第十二章 异常处理与程序调试(一)第十二章 异常处理与程序调试(二)第十二章 异常处理与程序调试(三)第十三章 Delphi开发数据库应用程序概述(一)第十三章 Delphi开发数据库应用程序概述(二)第十四章 简单数据库应用的创建及MASTAPP介绍(一)第十四章 简单数据库应用的创建及MASTAPP介绍(二)第十四章 简单数据库应用的创建及MASTAPP介绍(三)第十五章 数据访问部件的应用及编程(一)第十五章 数据访问部件的应用及编程(二)第十五章 数据访问部件的应用及编程(三)第十六章数据浏览部件的应用及编程(一)第十六章数据浏览部件的应用及编程(二)第十七章 SQL编程(一)第十七章 SQL编程(二)第十八章 Delphi客户服务器应用开发(一)第十八章 Delphi客户服务器应用开发(二)第十八章 Delphi客户服务器应用开发(三)第十八章 Delphi客户服务器应用开发(四)第十九章 Delphi自定义部件开发(一)第十九章 Delphi自定义部件开发(二)第十九章 Delphi自定义部件开发(三)第十九章 Delphi自定义部件开发(四)第二十章 开发Delphi对象式数据管理功能(一)第二十章 开发Delphi对象式数据管理功能(二)第二十章 开发Delphi对象式数据管理功能(三)第二十章 开发Delphi对象式数据管理功能(四)第二十章 开发Delphi对象式数据管理功能(五)【DELPHI基础教程】是一系列教程,涵盖了从Delphi编程的基本概念到高级主题的广泛内容,适合初学者和有一定经验的开发者学习。
教程通过多个章节深入浅出地讲解了Delphi开发环境及其核心特性。
在第一章《Delphi快速入门》中,读者将了解Delphi作为一款强大的可视化Windows应用开发工具,它的主要优势在于其面向对象的Pascal语言、高效的编辑器以及先进的数据库技术。
这一章介绍了Delphi的基本形式,即应用程序框架,它由一个默认的窗体Form组成,程序员可以在上面添加代码以实现特定功能。
框架本身具备了基本的Windows窗口属性,并提供了处理用户输入的基础。
第二章《Delphi面向对象的编程方法》则详细探讨了Delphi中的面向对象编程,包括类、对象、继承、封装和多态性等概念,这些都是Delphi中开发复用性代码的关键。
第三章至第六章分别涉及字符串列表的使用、文本编辑器设计、图形图像编程和文件管理。
这些章节将帮助读者掌握处理文本数据、创建图形界面以及管理程序数据的能力。
第七章和第八章讲解了剪贴板操作和动态数据交换,以及对象链接与嵌入(OLE),这些都是Windows应用程序中常见的数据交换技术。
第九章到第十一章涉及Delphi的拖放编程、动态链接库(DLL)编程以及应用程序的应用技巧,让开发者能够更高效地构建和扩展功能。
第十二章至第十八章重点介绍了异常处理、程序调试、数据库应用开发、SQL编程以及客户服务器应用的构建。
这对于开发复杂的业务系统至关重要。
第十九章至第二十章深入到自定义部件开发和对象式数据管理功能的开发,这是提升应用程序个性化和性能的重要环节。
《DELPHI基础教程》全面覆盖了Delphi编程的核心知识点,从基础到进阶,旨在帮助学习者熟练掌握Delphi开发,从而能独立构建功能丰富的Windows应用程序。
通过这个教程的学习,开发者不仅可以理解Delphi的语法和机制,还能掌握如何利用Delphi的强大功能来实现各种实际应用场景的需求。
2025/1/26 7:35:00 1.53MB DELPHI
1
在proteus仿真中,用c语言编写的程序,调试过了
2025/1/18 21:07:07 34KB 电子琴 proteus
1
用hal库开发的stm32f103reRC522读写程序SPI通讯可实现对卡类型识别读写等操作
2025/1/5 8:34:32 13.72MB HAL STM32 RC522
1
基于opencv的全景拼接器,无需运行代码,只需要用windows命令行输入几行命令即可,效果好,远超于手机全景相机,并且速度也比程序调试时的代码运行的更快,因为做了优化。
压缩包中还附带了使用教程以及素材,方便易懂。
适合摄影爱好者。
2024/12/13 16:38:01 60.3MB 全景拼接 opencv 图像处理
1
共 50 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡