废话不说了,下面进入正题,学习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
systemc-2.3.1.tar
2025/3/3 9:17:25 21.21MB systemc
1
第1章绪论1.1什么是SystemC?1.2为何采用SystemC?1.3设计方法1.4设计能力1.5SystemCRTL1.6本书的组织结构1.7练习第2章SystemC入门2.1基础知识2.2再看一个2*4译码电路示例2.3描述层次关系2.4验证功能2.5练习第3章数据类型3.1值保持器3.2类型概述3.3位类型3.4任意位宽的位类型3.5逻辑类型3.6任意位宽的逻辑类型3.7有符号整型3.8无符号整型3.9任意精度的有符号整型3.10任意精度的无符号整型3.11解析式类型3.12用户定义的数据类型3.13推荐采用的数据类型3.14练习第4章组合逻辑建模4.1SC-MODULE4.1.1文件结构4.2示例4.3读写端口和信号4.4逻辑算符4.5算术算符4.5.1无符号算术4.5.2有符号算术4.6关系算符4.7向量与位区间4.7.1常量下标4.7.2不是常量的下标4.8if语句4.9switch语句4.10循环语句4.11方法4.12结构体类型4.13多个进程的△延迟4.14小结4.15练习第5章同步逻辑建模5.1触发器建模5.2多个进程5.3带异步预置位和清零的触发器5.4带同步预置位和清零的触发器5.5多个时钟与多相位时钟5.6锁存器建模5.6.1if语句5.6.2switch语句5.6.3避免产生锁存器5.7小结5.8练习第6章其他逻辑6.1三态驱动器6.2多个驱动器6.3无关值处理6.4层次结构6.5模块的参数化6.6变量和信号的赋值6.7练习第7章建模示例7.1可参数化的三态输出寄存器7.2存储器模型7.3有限状态机建模7.3.1Moore有限状态机7.3.2Mealy有限状态机7.4通用移位寄存器7.5计数器7.5.1模N计数器7.5.2约翰逊计数器7.5.3格雷码可逆计数器7.6约翰逊译码器7.7阶乘模型7.8练习第8章测试平台8.1编写测试平台8.2仿真控制8.2.1sc_clock8.2.2sc_trace8.2.3sc_start8.2.4sc_stop8.2.5sc_time_stamp8.2.6sc_simulation_time8.2.7sc_cycle和sc_initialize8.2.8sc_time8.3波形8.3.1任意波形8.3.2复杂的重复波形8.3.3派生时钟的生成8.3.4从文件中读取激励8.3.5反应式激励8.4监听行为8.4.1断言正确的行为8.4.2将结果转储至文本文件8.5其他示例8.5.1触发器8.5.2同步输出的多路选择器8.5.3全加器8.5.4周期级仿真8.6sc_main函数内的语句次序8.7记录聚合类型8.8练习第9章系统级建模9.1SC_THREAD型进程9.2动态敏感9.3构造函数的参数9.4其他示例9.4.1最大公因子9.4.2滤波器9.5端口、接口和信道9.6高级论题9.6.1共享数据成员9.6.2定点类型9.6.3模块9.6.4其他方法9.7仿真算法9.8练习附录A运行时环境A.1软件安装A.2编译A.3仿真A.4调试附录BSystemCRTL:可综合的子集B.1SystemC语言要素B.2C++语言要素
2025/2/7 11:47:25 6.27MB system c
1
IEEE关于SystemC在模拟和混合信号建模的应用参考手册,很有价值
2024/3/4 12:09:27 4.69MB IEEE 2016版 SystemC 混合信号
1
国外FPGA经典教材:Thedesignwarrior'sguidetoFPGAs中文翻译这本书对FPGA的介绍是相当全面而宽泛的,从FPGA的起源到基本原理,从FPGA的结构到设计流程,从FPGA的厂商到开发工具,几乎无所不包。
作者在介绍这些概念时不时的穿插介绍了很多比较前沿的主题,比如说基于SystemC的设计流程(做FPGA的人很多,但我相信了解SystemC的一定还很少)。
同时,作者也介绍不少FPGA设计开发中的技术细节,比如流水线、锁存器和时钟的一些相关问题。
2024/2/11 6:27:42 20.32MB FPGA 设计 Maxfiel 马克斯菲尔德
1
先前找了2个waveVCDViewer波形查看工具,不管是安装版的还是所谓绿色版本的,都不能正常使用——不是软件过期就是运行错误!后来自己找了一个很方便的绿色版,为了方便有同样需要的同学,现在上传分享给大家!waveVCDViewer波形查看工具(GTKwave),独立运行,纯绿色版本,不需安装,直接解压运行gtkwave.exe文件即可!例如:解压缩到C盘,直接运行"C:\gtkw\bin\gtkwave.exe";或者解压缩到D盘,则运行"D:\gtkw\bin\gtkwave.exe",在cmd命令行模式或者在窗口模式下用鼠标双击都可以!简单使用说明:1.按照上面的方法,解压缩并运行gtkwave以后,可以将一个VCD波形文件用鼠标拖到gtkwave运行窗口中,以打开VCD波形文件。
2.这时候波形窗口还是空白一片,什么图形都没有!?——不要吃惊,这是正常的!是为了能够筛选使用者关心的信号波形而进行的设计;
要不然如果VCD文件里面的信号很多的话,一上来一大堆的信号波形图像,就会显得很乱。
下面可以参照我的方法步骤来操作,我的例子是查看一个SystemC产生的VCD(ValueChangeDump)波形文件。
按照前面说过的,将这个VCD波形文件用鼠标拖到打开的gtkwave运行窗口中以后,点击左上边的子窗口“SST”中的“SystemC”,则会在左下边的子窗口中出现对应"Type"和"Signals"的列表。
3.将"Signals"下面的信号名称用鼠标拖到中间的子窗口"Signals"中,就会在右边的子窗口"Waves"中显示对应的波形文件了!4.键盘按“Alt+F”或者点击上方的zoom图标(或者不怕麻烦的话,还可以依次点击“Time”-“Zoom”-“ZoomFull”)就可以显示完整时间段的波形,当然你也可以进行放大或者缩小显示等等操作。
如果使用中还有问题,可以问我。
谢谢!HY
2023/12/14 8:32:57 5.1MB wave VCD Viewer 波形
1
SystemC片上系统设计,SystemC片上系统设计,SystemC片上系统设计
2023/9/5 14:06:26 16.05MB SystemC 系统设计
1
Active-HDL是集成VHDL,Verilog,EDIF,SystemC开发环境。
它由设计工具,VHDl&Verilog;编译器,单仿真内核,调试工具,图形仿真和资源、库等管理工具,可让用户运行仿真,综合,实现,以及第三方工具。
2023/8/15 5:39:38 863KB ActiveHDL
1
IARSystems发布的visualState是基于UML状态机的建模工具,允许开发人员在状态机的层次上开发和调试,然后直接生成可用的C代码,尽量减少人工编码引进错误的可能。
对于复杂的逻辑,如果不使用层次状态机来剖析它的复杂性,而试图靠大脑if…else…直接编码,错误是难免的。
嵌入式系统很多用在涉及人身安全的领域,出现错误后果相当严重。
目前,visualState已经用在各种设备的开发中,包括取款机、红外夜视仪、阿帕奇直升机的部件等。
IARSystems还和SCIOPTA达成了合作协议,将IAR的工具和SCIOPTARTOS结合起来,共同聚焦于安全苛求的应用,提供通过国际电工委员会IEC61508标准认证的一站式的解决方案。
创业公司Axilica发布了EDA工具FalconML,帮助工程师从UML到SystemC,然后到FPGA或ASIC实现。
SoC(芯片上系统)的复杂度越来越高,基于C++、加上硬件扩展库的SystemC(http://www.systemc.org)成为新一代的设计语言。
2005年12月,SystemC通过IEEE标准协会的审查,取得IEEE1666标准,更值得我们投入精力去研究它。
《基于状态机的嵌入式系统开发》(21世纪高等学校嵌入式系统专业规划教材)内容简介基于状态机的嵌入式系统开发是当前流行、前景广阔的嵌入式系统开发方法。
本书是基于状态机的嵌入式系统开发的入门指导书,兼顾理论性与实践性,介绍了嵌入式系统及状态机的基础知识,同时加入了生动的实际案例程序。
  本书内容分为3篇。
第1篇为引入篇,介绍状态机建模平台与入门实验;
第2篇为理论与实践篇,主要介绍了UML状态机理论基础、visualSTATE状态机和丁具链、visualSTATE状态机建模案例以及系统整合;
第3篇为创新没汁篇,具体讲述厂将visualSTATE牛成的代码集成到STM32的具体例广ATM取款机设计,并在最后展示了实际中——款车灯系统应用visualSTATE快速建模的过程。
  本书由浅入深,循序渐进,适合刚接触基于状态机的嵌入式系统开发的初学者学习,也可作为大中专院校嵌入式相关专业本科生、研究生的教材,同时还可以作为从事嵌入式系统应用开发工程师的参考书。
2023/7/4 2:10:04 87.27MB visualSTATE 状态机 嵌入式
1
学习SystemC的好材料
2016/2/14 11:52:18 24.11MB SystemC Ground up 2nd
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡