FPGA温度测量设计论文 - 图文(5)

2019-04-15 22:53

西安工业大学毕业设计(论文) 与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,VHDL的学习要困难一些。但Verilog HDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。下面列出的是Verilog硬件描述语言的主要能力:

基本逻辑门,例如and、or和nand等都内置在语言中;用户定义原语( UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 · 开关级基本结构模型,例如pmos 和nmos等也被内置在语言中;提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。能够描述层次设计,可使用模块实例结构描述任何层次。设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。Verilog HDL不再是某些公司的专有语言而是I E E E标准。人和机器都可阅读Verilog 语言,因此它可作为E D A的工具和设计者之间的交互语言。Verilog HDL语言的描述能力能够通过使用编程语言接口( P L I)机制进一步扩展。P L I是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级( RT L)到算法级,包括进程和队列级。能够使用内置开关级原语在开关级对设计完整建模。同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。能够使用门和模块实例化语句在结构级进行结构描述。在Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。可以显式地对并发和定时进行建模。提供强有力的文件读写能力。语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。 3.1.3 QuartusⅡ的使用

QuartusⅡ是一种用Altera的专业EDA工具,支持原理图输入,HDL硬件描述语言的输入等多种输入方式,相比大家也都学过数字电子技术基础(数电),实验课的时候用的就是这个工具,当时我们就是使用原理图输入的方式来进行

17

西安工业大学毕业设计(论文) 数字系统的设计的,这是一种属于上世纪七八十年代的数字系统设计方式,现在我们学的就是硬件描述语言的输入方式,利用类似高级程序的设计方法来设计出数字系统。这是一种上世纪九十年代开始兴起并会在当前有巨大发展,更加是未来半个世纪内会成为数字系统设计最重要的设计方式,接下来我们需要对这种智能的EDA工具进行初步的学习。使大家以后的设计更加容易上手。

图3.1 QuartusⅡ主界面

第一步:打开主界面如图3.1所示

快捷工具栏:提供设置(setting),编译(compile)等快捷方式,方便用户使用,用户也可以在菜单栏的下拉菜单找到相应的选项。菜单栏:软件所有功能的控制选项都可以在其下拉菜单中找到。编译及综合的进度栏:编译和综合的时候该窗口可以显示进度,当显示100%表示编译或者综合通过。信息栏:编译或者综合整个过程的详细信息显示窗口,包括编译通过信息和报错信息。

第二步:新建工程(file>new Project Wizard)

1.工程名称:

图3.2 工程名与文件名

第一行为工程保存路径,第二行为工程名,第三行为顶层模块名,须跟工程名相同,在文件输入时,顶层模块必须和工程字相同(图3.2)完成后NEXT直接到窗口2。

2.选择芯片型号:在Family选择芯片系列型号,以本设计为例,选择CycloneⅡ找到EP2C8Q208C8芯片,选择完成后finish,新工程建立完成。

18

西安工业大学毕业设计(论文)

图3.3芯片选择

第三步:编程及检错,在工具栏File下点击New,新建一个VerilogHDL文件,在此可以将已经编写完成的程序直接粘贴在工作区(注意实体名与工程名要相同),这样便提高了工作效率。将文件保存。保存后,加点主界面按钮,完成后,无错误点击确定,有错误进行修改。

第四步:锁定引脚,设置管脚:单击主界面Assignment按钮→Pins,在弹出的界面设定对应管脚(Node name为端口名,Location为管脚),双击Location选择您需要的管脚,如图3.4所示

图3.4 设置管脚

第五步:整体编译,单击主界面按钮,进行编译,完成无错误后点击确定,有责进行修改。

第六步:下载调试。单击主界面按钮,在弹出的窗口,单击Hardware Setup…,然后选中File所在行中的Program/Configure,单击Start,等待结果。

图3.4 调试

3.2 分频

由于FPGA开发板上时钟信号为50MHz,FPGA工作频率为1MHz,所以需要通过编程来实现分频功能,为FPGA和显示电路提供正常时钟信号。对其在QuartusⅡ9.0环境下仿真,结果如图3.5所示

19

西安工业大学毕业设计(论文)

图3.5 50MHz分频为1MHz

分频部分可以单独做一个模块,也可以不用,在后面的设计中直接用编程来实现分频,将分频部分加入整个编程可以减小一定的工作量,所以,在整个电路原理图中不会出现单独的分频模块。

3.3 温度信号采集

由于DS18B20的操作相对比较复杂,所以单独设置一个模块专门处理其初始化,鉴于数码管的显示模块设置是并行输入的,所以此模块兼备DS18B20的传输数据处理,把串行数据处理成并行数据。此模块的输入就一个是时钟,另一个就是DS18B20的串行实时温度代码(12位),其与DS18B20之间就一根线相连,实现对其初始化与数据接收,还要对接收的串行数据进行储存使之可以并行输出,以提供给显示模块。仿真模块如图3.6所示,时序图如3.7所示

图3.6信号采集模块

图3.7信号采集时序

3.4 数码管显示

从控制模块输出的十进制数接入到显示模块中,将其译码为七段值,输出到共阳数码管上显示,显示模块编程后模块图如图所示:

20

西安工业大学毕业设计(论文)

图3.7数码管显示模块

在FPGA开发板上显示出来的温度用四位数码管显示,其中第一位是符号位,即温度的正负值,“1”代表负值,“0”代表正值,后三位显示温度值。

3.5 顶层原理图

将所有模块编译完成后,将整体原理图设置为顶层文件,在QuartusⅡ主界面工栏Tools下可查看其RTL图。如图3.8所示

图3.8顶层图

工程文件中含有三个“.v”文件,seg7x8_drive.v是数码管显示功能模块,ds18b20_drive.v是温度传感器的控制模块,ds18b20_seg7.v为顶层模块,实例化了前面两个模块,并将采集的温度值送至数码管中进行显示。其中最主要的温度传感器的控制模块ds18b20_drive.v。该程序对DS18B20进行控制, 而且加入了分频,不仅可以简化程序, 还可以缩短1次温度转换所需的时间。这样的话, 1次温度转换和数字温度值输出循环所涉及到的控制命令、数据交换和所需时隙如图3.9所示。

将文件设置为顶层文件十分必要,这样做的目的是为了后面编译与下载的是整个工程,而不是某个模块,如果不做置顶,将会出现,管脚设定时端口不全,只有部分端口,下载结果错误等情况,很多初学者在做工程时总会出现错误这样的错误,所以在刚开始时要养成良好的习惯。

21


FPGA温度测量设计论文 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:安全评价过程控制标准

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: