Nios II 快速入门
Nios II快速入门
Nios II的开发涉及到多个软件工具,由于文档需要面向最广泛的开发者,在这一篇中以一般的开发流程,图文并列的方式进行探讨,假设读者已经正确安装Altera公司的Quartus II5.1或更高版本、Nios II Development Kit 5.1或更高版本的软件,对软件安装不再赘述。
1软件工具介绍
Nios II的开发包括了以32位Nios II软核处理器为核心的硬件配置、硬件设计、软件仿真、软件设计、软件调试等,基本的软件工具有:
1.1Quartus II,用于完成Nios II系统的综合、硬件优化、适配、编程下载和硬件测试
1.2SOPC Builder是Altera Nios II嵌入式处理器开发软件包,用于实现Nios II系统
的配置、生成、Nios II系统相关的软件的生成
1.3ModelSim用于对SOPC Builder生成的Nios II的HDL描述进行系统功能仿真
1.4Matlab/DSP Builder,生成Nios II系统硬件加速器,并为定制新指令提供支持。
1.5Nios II IDE,软件开发调试环境。
我们主要使用上述工具1、2、5,对3、4工具的开发使用可以根据大家的具体需求另行探讨。
2Nios II应用系统开发设计流程介绍
II开发分硬件开发和软件开发两个流程,硬件开发过程主要由用户定制系统硬件, Nios
然后由SOPC Builder等工具完成系统硬件和对应的开发软件生成;软件设计和传统方式类似,接近于unix/linux系统开发,软件开发又可以细分为HAL驱动程序开发和应用系统开发。在以后的实践中我们会体会到Nios II的开发是一个灵活的软硬件融合的开发过程。
3Nios II系统硬件设计实例导航
我们以一个简单的基于Nios II的系统开发过程来介绍Nios II系统的开发过程,该系统具有四个按钮,8个LED输出,SDRAM,FLASH硬件,实现简单的流水灯。项目名:Nios_Star。(这里介绍的是一个相对完整的系统定制,一个测试小系统只需要定制:CPU、On-Chip memory、JTAG-UART、Led-pio就可以了)。
3.1Nios II硬件系统开发流程
3.1.1建立开发目录,D:\Nios_Star
3.1.2启动Quartus II
3.1.3新建设计项目
Wizard
Project
File->New
Next。
在上图的输入表单中输入项目目录,项目名称和顶层模块名。
在上图中添加项目需要包含进来文件或非默认库,本例中使用默认设置。
上图中选择FPGA器件,本例中选EP1C6Q240C8。
上图中设定第三方综合、仿真、时间分析等EDA工具。本例选默认
上图罗列项目相关信息。按Finish生成项目3.1.4建立顶层模块
File->New
选择Block Diagram/Schematic File
As
File->Save
保存文件名为顶层模块名。
3.1.5建立系统模块
选择Quartus II菜单Tools->SOPC Builder…,打开与Quartus II集成的SOPC开发工具SOPC Builder。弹出下图:
输入系统名,本例中为:nios_star_cpu,HDL选择Verilog。
确认后进入SOPC Builer设计界面。在右上部分选择目标板和系统时钟,本例中目标板选FreeDev_board_cyclone_1c6(作者自制的开发板,如何定制开发板类型在其他讨论中给出,开发板不一致时可选一款FPGA器件一致外设相近的,这样选择会影响以后的FLASH program工具的使用),系统时钟默认50M。
3.1.6加入Nios CPU Core(必需)
首先加入的是CPU核,选择组件栏中的Avalon Modules ->Nios II Processor 右键点击,选择Add New Nios II Processor Altera Corporation…,打开配置对话框如
下图:
其他选项表单中都默认,点击Finish完成。
3.1.7加入on_chip_memory
使用FPGA内部RAM资源,可以构成RAM或ROM,速度快,特别在调试时因为很少受外部连线等因素的限制很有用。组件栏中选择Legacy Components->On-Chip Memory打开界面,如下图:
本例中我们定义了4k字节的RAM。
3.1.8加入JTAG_UART
UART在调试中非常有用,在调试中只要配置了CPU、On-Chip Memory JTAG
和JTAG UART就可以完成一个最小系统了,这些硬件资源都在FPGA器件的上,涉及的电路较少,比较容易正常工作,在调试时特别是自制开发板调试时很有效。在组件栏中选择Communication->JTAG UART,弹出JTAG UART配置界面如下:
3.1.9加入UART
UART就是通用异步收发器,NIOS II系统可以通过串口和其他设备通讯,也可用于仿真调试。波特率、数据位数、停止位数和校验方式按需要设置,本例选择默认配置,只用到RXD、TXD、GND三根线。
在组件选择栏中选择Communication->UART(RS232 series port)配置UART,界面如下:
3.1.10加入Timer
在嵌入式系统应用中,定时器是必不可少的,SOPC Builder提供了一个定时器组件。在组件拦中双击选择Other->Interval timer进入配置界面,我们选用Full feature,1ms一次溢出事件。
3.1.11加入Button_pio
在组件拦中双击选择Other->PIO进入配置界面,选4位,对应4个按钮。对于PIO有4种模式:
z输入(Input ports only)
z输出(Output ports only)
z三态(Tri-state ports)双向口
z输入、输出(Both input and output ports)
在此选Input ports only。在Input Options选项单我们配置了上升沿触发,生成中断请求的模式。
配置完成后右键单击SOPC Builder右半部分列表中的pio_0,Rename更名为button_pio.
3.1.12加入Led_pio
发光二极管LED PIO设置和button_pio类似,只是模式是Output ports only,不再需要中断生成,本例中配置了8位的LED输出。在组件拦中双击选择Other->PIO进入配置界面。
配置完成后右键单击SOPC Builder右半部分列表中的pio_0,Rename更名为led_pio。
3.1.13加入Avalon三态总线桥
异步SRAM和Flash的数据总线是三态的,Nios II CPU和SRAM、Flash相接需要Avalon三态总线桥。
在组件栏中双击Bridge->Avalon Tri-State Bridge,加入Avalon三态总线桥。
3.1.14加入SDRAM
Builder提供了对SDRAM支持,根据选用的芯片只需做少量的配置工 SOPC
作。在组件栏中双击Memory->SDRAM Controller进入配置画面,本例中因选用了SANSUNG K4S643232F,配置数据如下
3.1.15加入FLASH
在组件栏中双击Memory->Flash Memory(common Flash Interface)进入配置。因根据实际器件的地址和数据线宽度配置,其他参数本例中选默认值。
3.1.16锁定或调整存储器地址
选择SOPC Builder菜单System->Auto-Assign Base Addresses自动分配存储器地址。
选择SOPC Builder菜单System->Auto-Assign IRQs自动分配中断向量。
3.1.17设置系统地址
单击SOPC Builder的Next按钮,进行SOPC系统地址分配的配置。
主要是配置启动程序以及中断矢量表的内存位置。本例中选默认值。
3.1.18生成系统
Builder中单击Generate启动系统生成生成。
SOPC
生成完成以后单击EXIT退出SOPC Builder。
3.1.19在Nios_Star.bdf文件上绘制顶层图。
3.1.19.1双击BDF文件窗口,出现Symbol对话框。
3.1.19.2在对话框中点击Project目录。
3.1.19.3在Project下选择Nios_Star,会出现代表前面建立的Nios系统的大图
标。
3.1.19.4点击OK,将其放入BDF文件中。
3.1.19.5将Nios_Start与输入输出接口连接,完成系统硬件设计。
下图中仅联接了系统CLK、RESET、BUTTOM、UART等。
3.1.20引脚锁定
选择assignments->pins弹出引脚配置表单,根据PCB硬件连线设定内部信号和外部引脚连线。在SCH和PCB设计时确定这些资源的连接。
选择菜单Tools->Compile Tool启动编译
Proe中的常用函数关系
Proe中的部分函数关系 一、函数关系 sin 正弦Cos 余弦tan 正切asin 反正弦acos 反余弦atan 反正切sinh 双曲线余弦cosh 双曲线正弦tanh 双曲线正切spar 平方根exp e的幂方根abs 绝对值log 以10为底的对数ln 自然对数 ceil 不小于其值的最小整数floor 不超过其值的最大整数 二、齿轮公式 alpha=20 m=2 z=30 c=0.25 ha=1 db=m*z*cos(alpha) r=(db/2)/cos(t*50) theta=(180/pi)*tan(t*50)-t*50 z=0 三、蜗杆的公式da=8为蜗杆外径m=0.8 为模数angle=20压力角 L=30长度q直径系数d分度圆直径f齿根圆直径n实数
其中之间的关系 q=da/m-2 d=q*m df=(q-2.4)*m n=ceil(2*l/(pi*m)) 在可变剖面扫描的时候运用公式sd4=trajpar*360*n 在扫描切口的时候绘制此图形,其中红色的高的计算公式是sd5=pi*m/2 五、方向盘的公式sd4=sd6*(1-(sin(trajpar*360*36)+1)/8) 其中sd4是sd6的(3/4或者7/8),sin(trajpar*360*36的意思是转过360度且有36个振幅似的 六、凸轮的公式sd5=evalgraph("cam2",trajpar*360) r=150 theta=t*360 z=9*sin(10*t*360) 在方向按sin(10*t*360)的函数关系,9为高的9倍10为10个振幅似的 七、锥齿轮公式 m=4模数z =50齿轮齿数z-am=40与之啮合的齿轮齿数angle=20压力角b=30齿厚long分度圆锥角 d分度圆直径da齿顶圆直径df齿根圆直径db基圆直径关系:long=atan(z/z-am) d=m*z da=d+2*m*cos(long)
高中常用函数性质及图像汇总
高中常用函数性质及图像 一次函数 (一)函数 1、确定函数定义域的方法: (1)关系式为整式时,函数定义域为全体实数; (2)关系式含有分式时,分式的分母不等于零; (3)关系式含有二次根式时,被开放方数大于等于零; (4)关系式中含有指数为零的式子时,底数不等于零; (5)实际问题中,函数定义域还要和实际情况相符合,使之有意义。 (二)一次函数 1、一次函数的定义 一般地,形如y kx b =+(k ,b 是常数,且0k ≠)的函数,叫做一次函数,其中x 是自变量。当0b =时,一次函数y kx =,又叫做正比例函数。 ⑴一次函数的解析式的形式是y kx b =+,要判断一个函数是否是一次函数,就是判断是否能化成以上形式. ⑵当0b =,0k ≠时,y kx =仍是一次函数. ⑶当0b =,0k =时,它不是一次函数. ⑷正比例函数是一次函数的特例,一次函数包括正比例函数. 2、正比例函数及性质 一般地,形如y=kx(k 是常数,k≠0)的函数叫做正比例函数,其中k 叫做比例系数. 注:正比例函数一般形式 y=kx (k 不为零) ① k 不为零 ② x 指数为1 ③ b 取零 当k>0时,直线y=kx 经过三、一象限,从左向右上升,即随x 的增大y 也增大;当k<0时,?直线y=kx 经过二、四象限,从左向右下降,即随x 增大y 反而减小. (1) 解析式:y=kx (k 是常数,k ≠0) (2) 必过点:(0,0)、(1,k ) (3) 走向:k>0时,图像经过一、三象限;k<0时,?图像经过二、四象限 (4) 增减性:k>0,y 随x 的增大而增大;k<0,y 随x 增大而减小 (5) 倾斜度:|k|越大,越接近y 轴;|k|越小,越接近x 轴 3、一次函数及性质 一般地,形如y=kx +b(k,b 是常数,k≠0),那么y 叫做x 的一次函数.当b=0时,y=kx +b 即y=kx ,所以说正比例函数是一种特殊的一次函数. 注:一次函数一般形式 y=kx+b (k 不为零) ① k 不为零 ②x 指数为1 ③ b 取任意实数 一次函数y=kx+b 的图象是经过(0,b )和(- k b ,0)两点的一条直线,我们称它为直线y=kx+b,它可以看作由直线y=kx 平移|b|个单位长度得到.(当b>0时,向上平移;当b<0时,向下平移)
Excel常用函数详解
计算机二级考试MS_Office应用Excel函数 =公式名称(参数1,参数2,。。。。。) =sum(计算范围) =average(计算范围) =sumifs(求和范围,条件范围1,符合条件1,条件范围2,符合条件2,。。。。。。) =vlookup(翻译对象,到哪里翻译,显示哪一种,精确匹配) =rank(对谁排名,在哪个范围里排名) =max(范围) =min(范围) =index(列范围,数字) =match(查询对象,范围,0) =mid(要截取的对象,从第几个开始,截取几个) =int(数字) =weekda y(日期,2) =if(谁符合什么条件,符合条件显示的内容,不符合条件显示的内容) =if(谁符合什么条件,符合条件显示的内容,if(谁符合什么条件,符合条件显示的内容,不符合条件显示的内容)) SUM函数 简单求和。 函数用法 SUM(number1,[number2],…) =SUM(A1:A5)是将单元格 A1 至 A5 中的所有数值相加; =SUM(A1,A3,A5)是将单元格 A1,A3,A5 中的数字相加。 SUMIFS函数 根据多个指定条件对若干单元格求和。 函数用法 SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) 1) sum_range 是需要求和的实际单元格。包括数字或包含数字的名称、区域或单元格引用。忽略空白值和文本值。 2) criteria_range1为计算关联条件的第一个区域。 3) criteria1为条件1,条件的形式为数字、表达式、单元格引用或者文本,可用来定义将对criteria_range1参数中的哪些单元格求和。例如,条件可以表示为32、“>32”、B4、"苹果"、或"32"。 4)criteria_range2为用于条件2判断的单元格区域。 5) criteria2为条件2,条件的形式为数字、表达式、单元格引用或者文本,可用来定义将对criteria_range2参数中的哪些单元格求和。 4)和5)最多允许127个区域/条件对,即参数总数不超255个。 VLOOKUP函数 是Excel中的一个纵向查找函数,按列查找,最终返回该列所需查询列序所对应的值。
Creo常用函数
Creo(PROE)中关系式的理解 一)关系式中可以用下列数学函数式表达: 1)、正弦 sin( ) 2)、余弦 cos( ) 3)、正切 tan( ) 4)、反正弦 asin( ) 5)、反余弦 acos( ) 6)、反正切 atan( ) 7)、双曲线正弦 sinh( ) 8)、双曲线余弦 cosh( ) 9)、双曲线正切 tanh( ) 以上九种三角函数式所使用的单位均为“度”。 10)、平方根 sqrt( ) 11)、以10为底的对数 log( ) 12)、自然对数 ln( ) 13)、e的幂 exp( ) 14)、绝对值 abs( ) 15)、不小于其值的最小整数(上限值) ceil( ) 16)、不超过其值的最大整数(下限值) floor( ) 可以给函数ceil和floor加一个可选的自变量,用它指定要圆整的小数位数。 带有圆整参数的这些函数的语法是: ceil(parameter_name或number, number_of_dec_places) floor (parameter_name 或 number, number_of_dec_places) 其中的parameter_name或number意为参数名称或者一个带小数位的精确数值 后面跟随着的number_of_dec_places意为十进位的小数位数,是可选值: A)可以被表示为一个数或一个使用者自定义参数。如果该参数值是一个实数,则被截尾成为一个整数。 B)它的最大值是8。如果超过8,则不会舍入要舍入的数(第一个自变量),并使用其初值。C)如果不指定它,则功能同前期版本一样。 使用不指定小数部分位数的ceil和floor函数,其举例如下: ceil (10.2) 值为11 floor (10.2) 值为 10
关系中常用函数详解
在ProE中,我们的关系可以直接很多系统已经预定义好的函数,通过这些函数我们可以来进行一些特定的运算得到所期望的值,下面我们就对一些常用函数进行一个概括和总结,方便大家在使用的时候查阅。 1.数学函数 在proe中,我们可以使用丰富的数学函数,常用的函数列表如下: sin()、cos()、tan()函数 这三个都是数学上的三角函数,分别使用角度的度数值来求得角度对应的正弦、余弦和正切值,比如: A=sin(30) A=0.5? B=0.866?B=cos(30) ?C=tan(30) C=0.577 asin()、acos()、atan()函数 这三个是上面三个三角函数的反函数,通过给定的实数值求得对应的角度值,如:A=asin(0.5) A=30? B=60?B=acos(0.5) C=26.6?C=atan(0.5)
sinh()、cosh()、tanh()函数 在数学中,双曲函数类似于常见的(也叫圆函数的)三角函数。基本双曲函数是双曲正弦“sinh”,双曲余弦“cosh”,从它们导出双曲正切“tanh”等。 sinh / 双曲正弦:sinh(x) = [e^x - e^(-x)] / 2 cosh / 双曲余弦:cosh(x) = [e^x + e^(-x)] / 2 tanh / 双曲正切:tanh(x) = sinh(x) / cosh(x)=[e^x - e^(-x)] / [e^x + e^(-x)] 函数使用实数作为输入值 log()函数 求得10为底的对数值,如: A=log(1) A=0;? A=1;?A=log(10) ?A=log(5) A=0.6989...; ln()函数 求得以自然数e为底的对数值,e是自然数,值是2.718...;如: A=ln(1) A=0;? ?A=ln(5) A=1.609...;
初中常用函数及其性质
一.正比例函数的性质 1.定义域:R(实数集) 2.值域:R(实数集) 3.奇偶性:奇函数 4.单调性:当k>0时,图像位于第一、三象限,y随x的增大而增大(单调递增);当k<0时,图像位于第二、四象限,y随x的增大而减小(单调递减) 5.周期性:不是周期函数。 6.对称轴:直线,无对称轴。、 二.一次函数图像和性质 一般地,形如y=kx+b(k、b是常数,且k≠0?)的函数,?叫做一次函数(?linear function).一次函数的定义域是一切实数. 当b=0时,y=kx+b即y=kx(k是常数,且k≠0?).所以说正比例函数是一种特殊的一次函数. 当k=0时,y等于一个常数,这个常数用c来表示,一般地,我们把函数y=c(c是常数)叫做常值函数(constant function)它的定义域由所讨论的问题确定. 一般来说, 一次函数y=kx+b(其中k、b是常数,且k≠0)的图像是一条直线. 一次函数y=kx+b的图像也称为直线y=kx+b. 一次函数解析式y=kx+b称为直线的表达式. 一条直线与y轴的交点的纵坐标叫做这条直线在y轴上的截距,简称直线的截距. 一般地,直线y=kx+b(k0)与y轴的交点坐标是(0,b).直线y=kx+b(k0)的截距是b. 一次函数的图像: k>0 b>0 函数经过一、三、二象限 k>0 b<0 函数经过一、二、三象限 k<0 b>0 函数经过一、二、四象限