quartus2 ii:我有两个函数,A...

求教c语言 我有两个函数 一个函数我让使用者输入一个数字 这个数字我要怎么调用到另一个函数里用_百度知道
求教c语言 我有两个函数 一个函数我让使用者输入一个数字 这个数字我要怎么调用到另一个函数里用
vo珐穿粹费诔渡达杀惮辑id temp(){
cout&&&enter a number&;
cin&&x;} void
for(int i =0; i & i ++){
.....................}
提问者采纳
常用两个办法:一是把x声明为全局变量,这样哪个函数都能用。如——void temp(){
cout&&&enter a number&;
cin&&x;} void
for(int i =0; i & i ++){
.....................}}二是把这个变量x由输入函数返回,在使用x的函数中调用输入函数获得变量x的值。如——int temp(){
cout&&&enter a number&;
cin&&x;}void
int n=temp();
for(int i =0; i & i ++){
.....................}}
提问者评价
其他类似问题
为您推荐:
c语言的相关知识
其他1条回答
你把这个变量定义在函数完就行了,
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Altera Quartus II软件开发流程_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Altera Quartus II软件开发流程
上传于||暂无简介
大小:1.28MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢quartus ii中 怎样将仿真出的波形的周期调试为1s?_百度知道
quartus ii中 怎样将仿真出的波形的周期调试为1s?
1、打开QuartusⅡ软件,2、选择File→New Project Wizard 新建一项工程。3、单击Next进入。(任何一项设计都是一项工程Project,必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,要用英文的比如存在E/eda),之后会出现三个要填的,分别E/eda,COUNT,COUNT;单击Next进入下一个,first name不填,单击Next进入对话框。在该对话框中指定目标器件,(我们选择的是QuickEDA核心板上用的Cyclone系列的EP1C6240C8。),next一直到finish4、选择File→New ——VHDL file
,将你的编程复制进去5、File→save as(新建个文件夹 用英文的)文件名一定要更改为COUNT(保持和实体一致,默认的文件名为VHDL1)6、在QuartusⅡ主界面下选择Processing→Start Compilation进行全程编译,会显示“successful”7、在QuartusⅡ主界面下选择File→New命令,打开新建文件对话框,在该对话框中选择Vector Waveform File ;8、在Nane栏内双击鼠标左键,弹出对话框。9、点击Node Finder 按钮5、在Filter栏选择Pins:all,点击List按钮,弹出如图所示对话框。10、点击&&按钮,按2次OK后。11、设置仿真结束时间。在QuartusⅡ主界面下选择Edit→End time…,打开图示对话框,将仿真结束时间设置为20us。12、编辑输入节点波形1)选中clk,在工具栏中点击Overwrite Clock按钮,打开图示对话框,将CLK周期设置为50ns。2)将clr设置为“0”(在波形图左边竖着的有个0矩形波)。(可以点击放大/缩小按钮,缩小时按右键)13、保存仿真波形文件,File→save,按默认的保存就行14、功能仿真。1)在QuartusⅡ主界面下选择Processing→Simulate Tool,2)在Simulation mode 下选择Functional,点击Generate Functional Simulation Netlist按钮。点击Start按钮开始仿真。,仿真后点击Report按钮,打开仿真结果窗口(波形就出来了),在该窗口中可以观察设计结果,功能仿真没有考虑器件的延迟时间。
其他类似问题
为您推荐:
提问者采纳
本文使用MathWorks公司的MATLAB软件和Altera公司的FPGA开发软件Quartus II进行FIR滤波器的设计仿真;&#47,阻带衰减40 dB; &#47,阶数15.1102*(As-8;&#47。
为获取实际应用的FIR滤波,每个子操作由不同的单元完成;t9&lt、数据通信等领域中往往要求信号在传输过程中不能有明显的相位失真,依次为1;,将其转换为12位二进制系数使用.384063h[6]=h[9]=133 D ==85Hh[7]=h[8]=0,截止频率fc=1;/ &#47、海明窗,其对称中心在N&#47,也是最常用的方法,f2=417 Hz.51861h[5]=h[10]=-259 D = -=EFDHh[6]=h[9]=0;凯撒窗下实际脉冲由图2,然后生成的顶层模块;&#47.07886*(As-21),可同时调整主瓣宽度和旁瓣电平;求凯撒窗函数求理想和实际脉冲响应、仿真和分析的软件包;&#47、凯撒窗等:……y&As&lt。也就是说、汉宁窗.3*pi,对设计进行进一步的完善.000723h[4]=h[11]=56 D ==38Hh[5]=h[10]=-0.3 FPGA设计中的流水线原则
在FPGA设计中,这样,仿真结果与实际运算结果一致;最小阻带衰减tr_width=ws-wp、仿真,并给出了设计的一般步骤,部分程序如下; = -t2,或改变窗形状重新计算。限于篇幅。1)在MATLAB中进行仿真设计和修改设计指标为; /通带截止频率W8=0;h(i)为FIR滤波器第i级抽头系数,利用所设计的滤波器进行滤波,由最后一级完成最终结果的输出,得到滤波器的输出:Hd(ejΩ)为逼近的理想滤波器频率响应,该FIR滤波器可以将高频部分有效的滤除。由于MATLAB产生的滤波器系数是小数:1。该方法能够直观地检验滤波器的设计效果;50)。在本设计中、仿真。在下一个时钟周期到来时,把每一节的输出加权累加。现在由图可见,缩短设计周期.7)。窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲响应序列的设计方法,用窗函数可以避免吉布斯现象h(k)=hd(k)ω(k),该部分的VHDL代码如下,需将hd(k)截断.5842*(A8-21)^0。经验证、综合。 1 FIR滤波器原理1,则为线性相位滤波器.2 窗函数设计方法
FIR滤波器的设计方法有窗函数法。其设计流程的步骤如下,10,用有限长的h(k)近似表示。本设计将常用的MATLAB软件和FPGA的设计软件Quartus II结合起来仿真; &#47,所以本设计选择凯撒窗实现;计算beta值(As&gt,如图4所示、测试和校验;=tap(1)+tap(14).36*tr-width): 式中,提高设计效率。Quartus II软件是Altera公司主推的FPGA设计软件;/阻带截止频率As=40;x(n)为第n时刻的输入样本:h[0]=h[15]=0,x为输入信号;=tap(0)+tap(15),12。如果不满足。本设计在处理加法器时;&#47:wp=0。通过调用模块、编译,FIR滤波器可以做到线性相位满足此要求。1。建立仿真电路结构,得到的输出结果如图7所示、图3验证技术指标,将前一级的结果锁存为该级电路的输人;%beta=0;=tap(7)+tap(8)。
普通的直接型FIR滤波器结构如图1所示,采用采样频率 =5 MHz;,从而减少输入到输出间的电路延时.3953求出窗函数: 式中,将两大软件综合运用后大大缩减了设计研发的时间。 3)Quartus II设计及仿真
对MATLAB信号处理工具箱产生的滤波器模型及系数,而将指令分为几个子操作;n=[0。2 基于计算机辅助的FIR滤波器设计流程
随着DSP技术在FPGA上的应用越来越广泛、输出波形(图5(b))的比较可看出.*w_kai。FIR滤波器实质上是一个分节的延迟线,是无限长序列,直至达到预期结果.537473h[1]=h[14]= -29 D = -=FE3Hh[2]=h[13]=-0。2)利用Simulink检验滤波效果
Simulink是MATLAB中一个专门用于对动态系统进行建模:t1&lt。
通过输入(图5(a)),beta=3:t10&lt。对于FIR滤波器的单位脉冲响应h(i)只要满足以下2个条件之一,见图6;(21&2处;hd(k)为理想滤波器的单位脉冲响应,满足设计要求.95)&#47.4+0。
线性相位的FIR滤波器具有中心对称的特性,f1=314 Hz,M)、可以顺序执行的子任务来逐步实现,很容易地实现其他各种滤波器的设计; /带宽M=ceil((As-7,在仿真中。1,这样逐级锁存,对输入输出进行波形仿真,导入前面所设计的FIR滤波器;按凯撒窗计算滤波器长度disp([&#39。通过参数指标确定所需的阶数和参数值.5 MHz、频率取样法和最优化设计法;(14,通过编译综合功能对生成的文件进行编译和综合:hd=ideal_lp(wc、布线,为提高系统的运行速度.10561h[3]=h[12]=114 D ==72Hh[4]=h[11]=0,流水线技术是将待处理的任务分解为相互有关而又相互独立。利用加窗函数进行截断和平滑:采样频率1000 Hz,每一级的电路结构得到简化,在算法结构上利用了流水线等优化方式。其中窗函数法是设计FIR滤波器最简单有效的方法,所用到的滤波器的系数都是借助于窗函数法完成的.1 FIR滤波器基本结构FIR滤波器的数学表达式为 ,2;&#47,可以构成仿真数字滤波器特性的结构框图。凯撒窗是一种适应性较强的窗;order&#39,则要改变带宽、下载于一体的设计软件:N为FIR滤波器的抽头数,最后得到实际FIR滤波的频率响应H(ejΩ)。
在自适应处理;/ = -t3,在较小的时钟周期内就能够完成这一级的电路功能。
设计常用的窗函数有矩形窗,可以通过对滤波器参数的修改;t2&lt,FPGA制造商相继推出了一些可以快速简单进行DSP设计的辅助性软件.700439h[2]=h[13]=-92 D = -=FA4Hh[3]=h[12]=0,对其结果进行定量分析; &#47.33106h[7]=h[8]=1054 D ==41EH在设计中采用流水线来提高有效的乘法器速度,以实现一个物理可实现且具有线性相位的FIR滤波器的设计目的,beta))' &#47,是集设计输入,4.2*pi;……t8&lt,利用对称和流水线技术来提高滤波器的性能。
由MATLAB产生的FIR数字滤波器的系数如下;/ &#47,凯撒窗的设计指标,num2str(M)])。在实际应用中:M-1]。首先建一个block diagram文件通过功能模块的搭建进行滤波器的设计;理想脉冲h=hd。3 结束语
本文综合介绍了基于FPGA软件Quartus II和MATLAB的FIR滤波器的设计仿真。
FIR滤波器的窗函数法设计过程为:w_kai=(kaiser(M; &#47。输人低频10 Hz和高频600 Hz的两个信号,利用这些软件的结合可以简化FIR滤波器设计。通过时序分析和功能分析结果;50)beta=0;=t1+t9+……+t8
通过Quanus II的波形仿真功能,具有一定的工程设计参考价值在现代数字系统中,经过设计输入,用Quartus II进行设计仿真;&#47,FPGA(现场可编程门阵列)以计算机为开发平台.444589h[0]=h[15]=81D==51Hh[1]=h[14]=-0
其他2条回答
End Time 在弹出的对话框中。
不过不建议用QUARTUS 仿真这么长时间;&gt。,Time后选择1。。首先必须打开一个。.VWF文件,最上面的菜单栏依次点Edit&gt.0S 即可。你会发现仿真时间超过几毫秒之后软件运行时间就会漫长的让人抓狂
edit -end time
quartus的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁本篇文章为转载,写的不错,最近在学modelsim仿真,网上的教程很乱,把自己认为不错的整理贴出来,后面有机会会写个详细点的。
Quartus 中调用modelsim的流程
1. 设定仿真工具
assignmentèsettingèEDA tool settingèsimulation 选择你需要的工具。
2. 自动产生测试激励文件模板:
processingèstartèStart test bench template writer
我们点击之后系统会自动在目录:当前文件夹è simulation è modelsim (这个文件夹名字跟你选的仿真工具有关) 中产生一个测试激励文件 xxx.vt(Verilog test bench) 或者 xxx.vht(VHDL test bench), 文件名跟你工程中的Top module 的名字一样, 后缀为.vt或者.vht。
3. 编辑走动生成的test bench文件
我们加入自己需要的激励以及初始化语句,这里我们还要修改test bench的模块名字为tb(我们会看到这个名字和后面的设定有联系)。
4. 连接test bench,我们需要从Quartus中自动调用仿真工具,所以需要设定Native Link选项。
a) 还是在simulation的设置页面里,设定 Native Link对话框中的设定。我们这里因为需要工具自动调用激励所以选中
b) 点击右边的Test Benches, 我们需要在这里设定一个相关联的test bench.
这里会弹出一个让你指定test bench的对话框,因为我们之前没有指定任何的test bench,所以这里是空白的。
c) 指定test bench
因为我们是第一次产生test bench,点击new.
点击New之后会产生一个New Test bench setting的对话框,在这里你将test bench和你的相应的test bench file进行绑定。
我们这里在Test bench name的对话框中输入一个名字”my_1st_tb”, 我们将看到,在下面的Top level module in test bench对话框中也自动显示”my_1st_tb”. 注意这个名字应该和你的test bench 中的module name一直,我们之前在第3步的时候将test bench的module name已经改成了tb,所以我们这里应该把对话框中的名字改成tb。
d) 加入test bench文件
5. 进行仿真
当这些设定都完成了之后, 选择菜单
toolèRun EDA Simulation toolèEDA RTL simulation
就可以直接调用modelsim进行仿真。
6. 小技巧:
我们这样调用仿真,如果是Modelsim AE每次不会编译lib文件,但如果我们使用的是Modelsim SE版本,每次调用都需要重新编译库,非常不爽,在这里我们建议自己修改脚本文件,进行仿真.
a) 当我们按照之前的描述,运行完仿真之后,停留在Modelsim的界面。
b) 在Modelsim界面的命令行上,我们点向上的方向键,就会出现我们上一条指令, 我们可以看到是
do xxxx.do 这说明工具执行的上一个命令式 xxxx.do这个脚本文件,我们这里的例子是
do oversampling_core_run_msim_rtl_verilog.do
i. 我们知道了工具执行的脚本,我们就可以按照自己的想法去改变这个脚本了。使用
edit oversampling_core_run_msim_rtl_verilog.do命令,可以看到这个脚本的内容(当然我们也可以使用Ultra Edit或者VIM等文本编辑软件去打开这个脚本文件)。这个脚本通常分成3部分 库文件编译部分,设计文件编译,运行参数设定和开始执行部分
ii. 通常来说库文件只在第一次编译的时候,需要编译,后面我们只需要在仿真的时候指定库文件的位置就好了,不需要每次都编译。因此我们可以注释掉“库文件编译部分”。下面图中红色框中的部分就是被注释掉的库编译部分,这样会节省我们的仿真时间,注意在脚本语言中#是注释符。
iii. 我们将编辑过的脚本文件另存为sim.do, 在以后的仿真中我们可以在Modelsim命令行中,直接在脚本中运行do sim.do(当然是先需要将Modelsim的工作目录改到 工程所在文件夹/simulation/modelsim/)。
c) 另外脚本生成的波形文件通常是将test bench的顶层加入到图形画面中我们可以看到在脚本的第3部分(运行参数和开始执行)部分,默认命令式
add wave *, 这条命令就是讲 test bench顶层的所有信好加入到wave窗口中。
对我们来说,在调试阶段,有很多底层信号都是想观测的,所以需要再手动修改一下命令
i. 在modelsim的窗口中,选中自己想要关心的模块,右键可以将自己关心的信号加入wave波形中
ii. 此时我们在wave 窗口中可以将这个波形的格式存下来,在wave窗口中点菜单fileèsave… 选择文件名为wave.do.
iii. 在我们执行的脚本中将add wave *,这个命令替换成do wave .do, 就可以在每次执行仿真的时候自动添加想要观测的波形了。
7. 接下来最后一个问题,怎样才能一次性的编译好库文件,让软件不再每次编译。其实altera已经为客户准备了相应的选项,只不过藏得比较深,不好找。
a) 一次性编译库:
i. 点击toolè launch EDA simulation Library Compiler
ii. 我们会看到一个让我们选择器件的页面。根据你的实际情况选择下面的设定。点击start compile,软件会自动帮你完成编译,然后关掉就好,至此你应该已经完成了库的编译。
iii. 接下来我们需要在QII的仿真设定页面做一些修改。
我们需要回到设定界面
Assignmentèsettingèsimulationèmore Nativelink setting
设定好相应的路径。
好了,重新run仿真,就发现不会再编译我们的库文件了。
阅读(...) 评论()Quartus II下FPGA的ROM文件初始化程序-zhangjinren-0218
& & & & & & & &From:zhangjinren-
Quartus II下FPGA的ROM文件初始化程序
%%%%%%%%%%Altera FPGA ROM文件格式是.mif和.hex%%%%%%%%%%%%%%%用于Altera FPGA 的ROM初始化文件格式%%%%%%%%%%%%%%%%%%%%%%%%%%
%利用matlab计算正余弦波形的浮点值,并量化8比特的定点波形数值%
%x =linspace(0,6.28,256);&& %在区间【0,6.28】等间隔取256个点
%由于正余弦波形的值在【-1,1】之间而且是小数,而FPGA不能表示小数的,此次要用8位的二进制数来表示着个整数,所以需要量化成8比特,先将值扩大。&&&
%扩大的方法就是乘以2^8&
%再将放大的浮点值量化,并写在存放在D盘的文件中D:/altera/example/cos_coe.txt
%---------------------------以下是余弦波形的文件---------------------------%
depth=256;
fid1=fopen('D:/altera\example\sinwave_generate/cos_coe.mif','wt');&&&& %wt(write tab)是写换行的意思,w只是写的意思
fprintf(fid1,'WIDTH=%d;\n',width);
fprintf(fid1,'DEPTH=%d;\n',depth);
fprintf(fid1,'ADDRESS_RADIX=DEC;\n');
fprintf(fid1,'DATA_RADIX=DEC;\n');
fprintf(fid1,'CONTENT BEGIN\n');
for i=0:1:256&&&&&&&&&&&&&&&&&&&&&& %在[0:256]做256次循环,每次加1
&&& c=cos(2*pi*i/256);&&&&&&&&&&&&& %在[0:2*pi]中等间隔取256个点,计算相应的余弦值
&&& y1=round(c*127);&&&&&&&&&&&&&&& %floor函数是向下取整来求得整数值
&&& fprintf(fid1,'%d:%d;\n',i,y1);
fprintf(fid1,'END');
fclose(fid1);
%---------------------------以下是正弦波形的文件---------------------------%
depth=256;
fid2=fopen('D:/altera\example\sinwave_generate/sin_coe.mif','wt');&&&& %wt(write tab)是写换行的意思,w只是写的意思
fprintf(fid1,'WIDTH=%d;\n',width);
fprintf(fid1,'DEPTH=%d;\n',depth);
fprintf(fid1,'ADDRESS_RADIX=DEC;\n');
fprintf(fid1,'DATA_RADIX=DEC;\n');
fprintf(fid1,'CONTENT BEGIN\n');
for i=0:1:256&&&&&&&&&&&&&&&&&&&&&& %在[0:256]做256次循环,每次加1
&&& s=sin(2*pi*i/256);&&&&&&&&&&&&& %在[0:2*pi]中等间隔取256个点,计算相应的余弦值
&&& y2=round(s*127);&&&&&&&&&&&&&&& %floor函数是向下取整来求得整数值
&&& fprintf(fid2,'%d:%d;\n',i,y2);
fprintf(fid1,'END');
fclose(fid2);
很喜欢此文字
很喜欢此文字
很喜欢此文字
很喜欢此文字
很喜欢此文字
很喜欢此文字

我要回帖

更多关于 quartus2 的文章

 

随机推荐