ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:306.51KB ,
资源ID:5048349      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5048349.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(工作笔记.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

工作笔记.docx

1、工作笔记Virtex-4系列的FPGAVirtex-4系列的FPGA采用了高级硅模组(Advanced Silicon Modular Block, ASMBL)架构。ASMBL架构从两个级别对设计进行了提升,一是解决基于应用领域的设计问题;二是解决在传统ASIC和FPGA设计中都存在的一些技术约束问题。Virtex-4系列具有3个平台:用于高性能和高密度综合应用的LX平台(面向逻辑优化的平台);用于高性能信号处理的SX平台(面向信号处理优化的平台);用于全功能处理和SoC嵌入式设计连接应用的FX平台(全功能平台)。可配置的逻辑块(Configurable Logic Blocks, CLB)

2、是实现时序和组合电路的最主要的逻辑资源。每个CLB单元包含4个互连的Slice。Virtex-4的每个BRAM可存储18Kb的数据,数据读出的时钟频率为500MHz。Virtex-4系列最小规模的FPGA器件包含48个BRAM;Virtex-4系列最大规模的FPGA器件具有552个BRAM。器件中Slice和CLB之间的数量关系:1个CLB逻辑模块具有4个Slice,1 CLB=4 Slice;1个Slice包括2个LUT、2个触发器以及算术逻辑,1 Slice=216位LUT + 2触发器 + 算术逻辑/MUX;每个Slice具有=216位LUT,总的分布式RAM的容量为166144=983

3、04=961024=96Kb(只有SLICEM的LUT可被用做分布式RAM)。 DSP48 Slice是Virtex-4 器件上的Xtreme DSP部件。每个Xtreme DSP单元都包括两个DSP48 Slice,构成了一种通用的DSP计算元件。DSP48 Slice可执行一个1818位的乘法以产生一个36位的乘积,该乘积在一个48位累加器中实现了累加(这就是用“48”命名DSP单元的原因)。Virtex-5系列的FPGA Virtex-5 FPGA基于65nm的三栅极氧化层技术,使用先进的硅组合模块(ASMBL)架构并且实现了更高级别的系统集成。Modelsim仿真流程modelsim仿

4、真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。基本流程是:建立工作库编译源代码启动仿真分析、调试。快捷操作: 使用“拖放”操作,直接从信号、结构等窗口向wave窗口中拖放; 波形放大缩小等操作,放大键盘“”,缩小键盘“”; 区域放大,选中的区域全屏显示; 使添加光标,可以利用光标时间差计算周期等参数; 显示/隐藏信号路径,方便阅读;设置断点:右击变量,选择Insert Breakpoin

5、t;当选中的变量波形值发生变化时,仿真自动暂停。保存/打开列表:波形列表为.do可执行脚本文件;打开列表可以使用do.do命令执行;waveform formats选项保存变量、显示方式及变量相对位置等属性;保存/打开波形:波形文件为.wlf格式文件,使用Filedatasetssaveas来保存波形;波形文件可用于波形对比的对象,使用Filedatasetsopen来打开;波形对比:在AE版本中,只能实现简单的手动对比波形; 用Filedatasets方式打开波形文件,向wave窗口中添加需要对比的信号;分析数据list:表格化显示数据,方便通过搜索特殊值或者特定条件的数据,简化分析数据的过

6、程。List窗口可通过菜单Viewlist,或者命令view list打开。分析数据source:source窗口具有完全的编辑能力,同时提供分析数据的一些操作。Source窗口可通过双击workspace的总的文件或信号打开。查看变量值:鼠标停留在变量上面,可显示当前值;设置断点: source源代码窗口设置条件断点;分析数据Memories: memory窗口列出工程中存储单元的数据,方便调试存储器的操作。step1:展开调用RAM单元的模块,并展开至RAM_ROCSTATCONFIG;step2:objects窗口选择MEM_512_9选择View Memory Contonts;分析数

7、据watch: watch窗口中可实现监测变量的变化情况,watch窗口可通过菜单viewwatch,或者命令view watch打开。Watch窗口中的对象可以以拖拉的方式从object窗口、wave窗口、source窗口中拖拉进来;分析数据signals:signals窗口显示被选中进程模块的变量、变量值。Signals窗口可通过菜单viewsignals,或者命令view signals打开。排序:支持按字母的升序或降序排列。拖放操作:可以将信号拖动到wave、list、watch窗口;过滤器:选择要察看的信号(输入、输出部信号等等)。对信号右键操作,可查看源代码;Waveform Co

8、mpare 波形对比能快速定位设计在修改前后的区别,在进行波形对比之前要保存原设计的波形文件,此文件为作为对比文件。step1:打开波形对比向导设置;tools-waveform compare-comparison wizard;step2:导入波形文件,作为对比对象;step3:选择对比信号的范围;step4:根据信号范围选择需要对比的信号;step5:分析数据;追踪数据流:数据流窗口能够对VHDL信号或者Verilog的线网型变量进行图示化跟踪 ,在界面中驱动信号或驱动线网变量的进程显示在左边,反之被驱动信号显示在右边。可通过双击wave窗口中需要追踪的信号打开dataflow窗口。 观

9、察设计的连接性:可以检查设计的物理连接性,可以逐个单元的观察所关注的信号、互联网络或寄存器的输入/输出情况。 跟踪事件:跟踪一个非预期的输出事件,使用嵌入波形观察器,可以由一个信号的跳变回溯追踪,查到事件的源头。 追踪未知态:未知态在设计中是传递的,用dataflow中TracechaseX功能很容易追踪不定态的来源。 显示层次结构:可以使用层次化实例显示设计的连通性。数据流窗口追踪不定态的功能是工程师比较青睐的,在dataflow窗口中使用TraceChaseX功能,不断往驱动级追踪不定态传递的源头。view * 观察包括signals、wave、dataflow等窗口文件。例:view s

10、ignals观察信号变量。quit -f/-force/-sim 该命令分别是退出ModelSim(-f/-force)和退出仿真(-sim)。run all命令用来一直仿真下去。在ModelSim SE中使用批处理方式来简仿化真步骤,具体做法为,将你所要执行的命令编辑成file.do文件,文件内容如下:vlib work / 建库vmap work work / 映射vlog *.v *_tb.v / 编译vsim*_tb / 仿真(模块名称)add wave/*_tb/ */ 将*_tb下的所有信号变量加入到wave窗口中,注意”*” 例:a.没有调用IP Core时quit -simcd

11、 E:/mycounter/modelsimvlib workvlog +acc E:/mycounter/modelsim/*.vvsim -t ps -novopt work.mycounter_tbview waveadd wave -dec /mycounter_tb/* #没有调用IP Core时的仿真命令, 注意后面的参数必须为Testbench中的模块名。add wave -dec /mycounter_tb/uut/*run 10 us例:b.调用IP Core时quit -simcd E:/signal_gen/testbenchvlib workvlog +acc E:/s

12、ignal_gen/testbench/signal_gen_top_tb.vvlog +acc E:/signal_gen/source/*/*.vvlog +acc E:/signal_gen/source/*/*/*.vvlog +acc C:/Xilinx/12.4/ISE_DS/ISE/verilog/src/glbl.vvsim -L D:/modeltech_6.6a/Xilinx_Lib/simprims_ver -L D:/modeltech_6.6a/Xilinx_Lib/unisims_ver -L D:/modeltech_6.6a/Xilinx_Lib/XilinxC

13、oreLib_ver -L D:/modeltech_6.6a/Xilinx_Lib/unimacro_ver -t ps -novopt work.signal_gen_top_tb work.glblview wavedelete wave *add wave -dec /*add wave -dec /u_signal_gen_top/*add wave -dec /u_signal_gen_top/u_nco/*run 10msModelsim中的读写文本操作. Modelsim读文本操作reg 11:0 data 0:2000;initial begin $readmemb (dat

14、a.txt, data,0,1000);end2. Modelsim写文本操作integer fid;wire signed 15:0 dout;initialbegin / 打开文件“e:signal_gentestbenchdac_data.txt” fid = $fopen(e:/signal_gen/testbench/dac_data.txt); # (CPU_START_CYCLE); repeat (DATA_NUM) begin (posedge dac_clk)/ 在时钟的上升沿读接口模块的数据,并将其存入文件 $fdisplay(dds_dout_fid, %d, dout

15、); end $fclose(dds_dout_fid);endMATLAB中的重要应用恢复matlab原始界面desktop-desktop layout - default区分大小写, Inf是无穷大,NaN是不定值eye()单位矩阵,zeros()全零矩阵,ones()全一矩阵grid on加网格 grid off不加网格legend() , figure , hold on保持, hold offloglog(x,y), semilogx(x,y), semilogy(x,y)mean(x) 求数组x中所有元素的平均值axis(0 2*pi -1 1);1.画图函数 %绘制单位脉冲响应

16、subplot(221);stem(b_lpf);xlabel(n);ylabel(h(n);title(低通滤波器的单位脉冲响应,fontsize,8); %设置字体大小 %求滤波器的幅频响应m_lpf=20*log(abs(fft(b_lpf)/log(10); %时域到频域转换%设置幅频响应的横从标单位为Hzx_f=0:(fs/length(m_lpf):fs/2;subplot(222);plot(x_f,m_lpf(1:length(x_f);xlabel(频率(Hz),fontsize,8);ylabel(幅度(dB),fontsize,8);title(低通滤波器的幅频响应,fo

17、ntsize,8); %绘制幅频响应曲线plot(x_f,m1,-,x_f,m2,*,x_f,m3,+,x_f,m4,-,x_f,m5,-.);xlabel(频率(Hz);ylabel(幅度(dB);legend(矩形窗,汉宁窗,海明窗,布拉克曼窗,凯塞窗);2.频谱分析函数fvtoolh = fvtool(data(1:data_len); %选择前面的8192点分析其频谱,没有图形时可以去掉长度限制set(h, Fs,fs, NormalizeMagnitudeto1,on, FrequencyRange,0, Fs/2),NumberofPoints,data_len/2);3.滤波器函

18、数FDAtool参考数字滤波器的MATLAB与FPGA实现P1304.数据量化N=12; %量化位数%noi=rand(1,length(t);%产生均匀分布的随机序列noise=randn(1,length(t);%产生高斯白噪声序列%归一化处理noise=noise/max(abs(noise);%12比特量化Q_noise=round(noise*(2(N-1)-1);MATLAB的读写文本操作 可以使用Excel进行数值转换:十六进制转十进制HEX2DEC(),十进制转十六进制DEC2HEX(),二进制转十进制BIN2DEC(),十进制转二进制DEC2BIN()。eg:指定转换位数,通

19、过操作与对比,建议使用转换成二进制用于Modelsim进行数据分析,十六进制的转换Excel转换不稳定。.MATLAB读文本操作fid=fopen(data.txt,r);data,N=fscanf(fid,%lg,inf); %读入二进制文件,N是用于计数的fclose(fid);fid = fopen(e:signal_gentestbenchdac_data.txt,r); dac_data,N = fscanf(fid,%d); %读入十进制文件fclose all;2.MATLAB写文本操作%将生成的数据以十进制数据格式写入txt文件中fid=fopen(data.txt,w);fp

20、rintf(fid,%8drn,DATA);fprintf(fid,;); fclose(fid);时序约束约束实例:# assign package pins #- clock -#NET sys_clk_153p6_p LOC = B14 | IOSTANDARD = LVDS_33;NET sys_clk_153p6_n LOC = A14 | IOSTANDARD = LVDS_33;NET dac_clk_153p6 LOC = K14 | IOSTANDARD = LVCMOS33;#- FPGA reset -#NET rst_n LOC = AA13 | IOSTANDARD

21、= LVCMOS33 | IOB =TRUE;#- hardware version -#NET hw_version0 LOC = W15 | IOSTANDARD = LVCMOS33;NET hw_version1 LOC = V16 | IOSTANDARD = LVCMOS33;NET hw_version2 LOC = U16 | IOSTANDARD = LVCMOS33;NET hw_version3 LOC = Y17 | IOSTANDARD = LVCMOS33;#- CPU interface -#NET cpu_wr_n LOC = K7 | IOSTANDARD =

22、 LVCMOS33 | IOB =TRUE;NET cpu_rd_n LOC = J6 | IOSTANDARD = LVCMOS33 | IOB =TRUE;NET cpu_cs_n LOC = G3 | IOSTANDARD = LVCMOS33 | IOB =TRUE;NET cpu_addr0 LOC = F3 | IOSTANDARD = LVCMOS33;NET cpu_addr1 LOC = L10 | IOSTANDARD = LVCMOS33; #- DAC interface -#NET dac_data_p0 LOC = A12 | IOSTANDARD = LVDS_3

23、3 | IOB = TRUE;NET dac_data_n0 LOC = B12 | IOSTANDARD = LVDS_33 | IOB = TRUE;#- LED interface -#NET led_ind LOC = T3 | IOSTANDARD = LVCMOS33 | IOB =TRUE;# timing constraint #- clock -#NET sys_clk_153p6 TNM_NET = sys_clk_153p6;TIMESPEC TS_clk_153p6 = PERIOD sys_clk_153p6 162 MHz HIGH 50 %;NET dac_clk

24、_153p6 TNM_NET = dac_clk_153p6;TIMESPEC TS_dac_clk = PERIOD dac_clk_153p6 162 MHz HIGH 50 %;#- From-To route -# cpu_interfaceINST u_cpu_interface/u_cpu_wr_reg/cpu_data_flg TNM = CPU_WR_FFs;INST u_cpu_interface/u_cpu_wr_reg/cpu_wr_data_reg_? TNM = CPU_WR_FFs;INST u_cpu_interface/u_cpu_wr_reg/cpu_wr_d

25、ata_reg_? TNM = CPU_WR_FFs;INST u_cpu_interface/u_cpu_rd_reg/cpu_rd_data_? TNM = CPU_RD_FFs;INST u_cpu_interface/u_cpu_rd_reg/cpu_rd_data_? TNM = CPU_RD_FFs;TIMESPEC TS_CPU_WR_FFs = FROM CPU_WR_FFs TO FFS 20 ns;TIMESPEC TS_CPU_RD_FFs = FROM FFS TO CPU_RD_FFs 20 ns;#- end -#Xilinx FIFO IP core使用注意事项

26、1、almost full 和 almost empty flags用来指示只剩一个字了。2、Programmable full and empty status flags可以由用户自定义内容设定或者用专用的输入口进行设定。3、对于V5的block RAM和built-in FIFO可以使用内嵌的寄存器。使用这个寄存器可以提高FIFO的性能,但是增加延迟。4、FIFO常用于:跨时钟域操作和数据位宽转换。例如:两个独立的时钟域,独立的数据位宽,可以利用一个FIFO进行连接,如下图所示:FIFO可以自动完成数据位宽的转换。5、当需要用到大块的FIFO时,可以使用V5 built-in FIFO6

27、、First-Word Fall-Through(FWFT)特性是指,可以在没有进行读操作的时候,就可以提前知道下一个数据是什么,并且自动将这个数据放到输出数据线(DOUT)上。FWFT在要求低访问延迟时,很有用。 这几种FIFO支持FWFT特性:block RAM, distributed RAM, V5 built-in FIFO7、FIFO接口信号在写操作时,注意一下几个信号:(1)、FULL:当FULL有效时,所有的写操作都将被忽略,并且这时对FIFO的写操作不会对FIFO造成损坏。(2)、ALMOST_FULL:当这个信号有效时,说明还可以再进行一次写操作(3)、FROG_FULL:当FIFO得数据大于或者等于设定的门限时,这个信号有效;当FIFO得数据小于这个设定的门限时,这个信号无效。(4)、OVERFLOW:这个信号用来指示在前一个时钟周期的写请求(WR_EN)被拒绝,因为FIFO已经满了。(5)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1