- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计-基于SOPC技术实现数字闹钟
基于SOPC技术实现数字闹钟这种SOPC系统是指在FPGA中植入软核处理器,如:NIOS II核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOS II及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。File菜单?New Project Wizard,出现Introduction页面,该页面介绍所要完成的具体任务,点击next。
(3) 进行项目名称的设定、工作目录的选择。指定工程存放的目录,工程名和顶层实体名,工程名和顶层实体名要求相同,工程目录可以随意设置,但必须是英文的目录,工程名和顶层实体名也要求是英文名字,我们的工程名和顶层实体名为clock,选择Next。
4. 可以为工程添加先期已经输入的设计文件,指定用户自定义的元件库的路径,这里我们没有事先输入好的文件,也没有自定义的元件库,点击Next进入下一步。
5. 用户指定目标器件,根据开发板的所使用的器件来选择,实际开发中,通过查看核心板的参考手册来获取所使用的器件具体型号,可以使用窗口右边的Filters来加快器件的选择,选择完毕点击Next。
6. 指定在Quartus II 之外的用于,设计输入、综合、仿真、时序分析的第三方EDA工具,Quartus II对第三方工具的支持比较完善。这里我们不做选择,直接点击Next。
所见新工程的信息,确认所创建工程的主要信息,点击Finish完成工程的建立,在开发的过程中,还可以通过菜单assignment?Settings来对这些配置进行修改。 点击Finish按钮,Quartus II自动会打开这个工程,可以看到顶层实体名出现在工程导航窗口中。
7,、 新建的工程窗口中,选择File?New;在Device Design File页中,选择Block Diagram/Schematic File,即原理图文件,也可以选择硬件描述语言的文件形式。单击OK。出现一个模块编辑窗口;选择File?Save As,出现Save As对话框,显示的目录为之前设置的工程目录,文件名为之前设置的顶层实体名(由于这是工程的第一个文件,系统会默认为顶层设计实体的名字)。确定Add to Current Project选项被选中,点击save。
器件型号
2.2创建NIOS II 系统模块
(1) 创建系统:启动SOPC Builder,选择Tools?SOPC Builder,出现如图所示的Create New System对话框。键入系统的名字,选择硬件描述语言Verilog或者是VHDL。
(2) 设置系统主频和指定目标FPGA:在Board部分选择Unspecified,然后在Device Family选择Cyclone II。用户需要设置系统的时钟频率,该频率用于计算硬件和软件开发中的定时,比如时钟分频或波特率,还可以选择是否选用流水线。
(3)加入Nios II CPU和 IP模块:首先加入Nios II软核,Nios II 是软核CPU,共有三种类型的CPU可供选择:Nios II/e(经济型)、Nios II/s(标准型)和Nios II/f(快速型)。用户可以根据实际的情况进行选择。Nios II是一个用户可以自行进行定制的CPU,用户可以增加新的外设、新的指令等。
添加CPU软核
添加内存__SDRAM
添加LCD模块 添加100ms的定时器
完整的SOPC的硬件系统
生成的PLL模块
顶层总原理图
2.3部分程序如下:
模24计数器
//counter24.v
1 //filename :counter24.v (BCD : 0--23)
2 module counter24(CntH,CntL,ncR,EN,CP);
3 input CP,ncR,EN;
4 output [3:0]CntH,CntL;
5 reg [3:0]CntH,CntL;
6
7 always @(posedge CP,negedge ncR)
8 begin
9 if(~ncR)
10 {CntH,CntL}=8h00;
11 else if(~EN)
12 {CntH,CntL}={CntH,CntL};
13 else if((CntH2)||(CntL9)||((CntH==2)(CntL=3)))
14
文档评论(0)