




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信号与信息综合处理实 验 报 告学院:信息与通信工程学院 班级: 姓名: 学号:实验二 用FPGA实现FFT1. 实验目的1) 掌握Xilinx ISE中IP Core的使用方法;2) 初步掌握Xilinx 公司的FFT IPCore的使用方法;3) 比较DSP和FPGA实现FFT的异同。2. 实验内容1) 按实验指导书所给出的步骤,用Xilinx IP Core实现256点的FFT并进行仿真和测试;2) 将所给出的例子改写为512点的IFFT并进行仿真和测试;3) 将FFT点数改为1024,重新进行仿真和测试;4) 将FFT IP core改为Radix-4 Burst I/O架构,重新完成
2、仿真和测试。3. 实验原理3.1. Xilinx FFT IP core使用说明在Xilinx公司的IPCore中,提供两不同的架构:Burst I/O架构和Streaming I/O流水线架构。所谓的Burst I/O是指数据的输入和输出都是突发的,即输入输出是一段一段的而不是连续的;所谓的Streaming I/O流水线架构则是指输入数据和输出数据都是以一定的频率连续不断地进行的。Burst I/O 架构下,采用的是时间抽取(DIT)方法,而在Streaming I/O流水线架构下采用的是频率抽取(DIF)方法。当采用基4分解时,N点FFT共需log4 (N) 级,每一级包含N/4个基4的
3、蝶形图,如果点数N不是4的幂次,则还需要另外一个基2的级。如果采用基2的分解,则共有log2 (N)级,每一级包含N/2个基2蝶形。IFFT通过将对应的FFT的相位因子取共轭实现。本实验以Streaming I/O流水线架构为例学习Xilinx FFT IPcore的使用方法。Streaming I/O流水线架构示意图如下图所示。这种架构将多个基2的蝶形处理单元排成流水线形式以提供连续的数据处理,每个处理单元有它自己的存储单元用于存储输入和中间数据。数据数据可以连续输入到流水线的前级,经过一段计算时延,从输出端连续输出一个数据块的数据。当然,这种架构也允许在数据块之间添加一段时间的间隔。在sc
4、aled fixed-point模式下,数据在每进行一对基2级之后都会进行一次移位,移位次数可以事先根据输入数据范围确定。除了这种模式外,IP core还提供一种块浮点模式用于改善性能。输出数据可以以比特逆序输出,也可以自然序输出,当采用自然序输出时,需要用到额外的存储资源。与streaming I/O架构不同,Burst I/O以一组蝶形计算单元完成所有运算,其中基4的Burst I/O架构示意图如下图所示。在这种架构下,输入数据分为4块存储到RAM中,每计算一次蝶形运算,计算结果仍然存储到这4块RAM中,直至最后输出。在这种架构下,数据不能连续输入,整个IPcore的工作状态分为数据输入、
5、处理和输出等不同的状态。显然,这种架构占用资源量明显少于Streaming I/O结构,但是处理数据的吞吐量有限。在不同的配置下,IPcore对外的接口有一些差别,下面仅对在本实验中将要用到的部分端口的功能做以下说明:端口名位宽方向描述Xn_re可配输入输入数据实部,与xn_index对应Xn_im可配输入输入数据虚部start1输入启动控制信号,拉高则FFT开始加载数据,可一直置高,此时由IP core的状态控制加载Fwd_inv1输入1表示FFT,0表示IFFTScale_sch在不同模式下位宽不同,在Streaming I/O模式下,输入各级移位次数Sclr1输入同步复位信号Clk1输入
6、工作时钟Xk_re可配,scaled模式下同Xn_re输入输入数据实部,与xn_index对应Xk_im同上输入输入数据虚部Xn_index与点数有关输出Xn所对应的序号Xk_index与点数有关输出Xk所对应的序号RFD1输出加载数据阶段为高Dv1输出输出数据时为高4. 实验步骤4.1. 256点FFT变换1) 新建工程;2) 新建FFT IPcore。命名为fft256,在IP列表中选择Digital signal-processing - transforms -FFTs,选择7.1版本,点击Next,然后点击finish;3) 在按以下截图下设置参数,然后点击下一步;4) 在第2个页面
7、上按下图设置,其含义分别为:定点格式;输入数据位宽16比特,相位因子16比特、Scaling选项选择scaled,截取模式选择truncation、添加同步复位sclr控制管脚、输出自然顺序,输入数据时序3 clock cycle offset选项。点击Next,进入第3页面5) 第3页面上,选择Number of Stages using block ram为3,点击Generate生成IPcore;6) 新建block RAM IPcore,取名为imput_rom_I;7) 在第2页面上选择单口ROM,其他选项保持不变;8) 第3页面设置如下图,注意选择use ENA pin选项;9)
8、第4页面上,选择下图中所示的两个寄存器选项;10) 选择压缩包中的input_I.coe作为该ROM的初始化文件;其他选项保持默认值,点击Generate;11) 再按照上述步骤生成一个ROM,选择压缩包中的input_Q.coe文件作为初始化文件;12) 将压缩包中的fft_top.v,fft_ctrl.v添加到工程中;13) 为fft_top.v编写测试文件,可参阅压缩包中的test_fft.v,注意理解程序中文件输出部分的功能;14) 对该设计进行功能仿真,记录仿真波形,并分析Streaming I/O架构下256点FFT的计算时延;15) 使用Chipcope对该设计进行在板测试,观察
9、xn_index、xn_im、xn_re、xk_im、xk_re、xk_index的相对时序关系,触发条件可以xk_index、out_block_index或rd_block_index、xn_index取某一具体数值开始触发采数操作;16) 去掉cdc文件,在布局布线报告中找到Device Utilization Summary部分,观察FFT部分的资源占用情况;17) 比较DSP实现FFT与FPGA实现FFT的异同。4.2. 1024点FFT变换将上述点数设置改为1024点,其余相同,重新完成上述流程。4.3. Burst I/O架构下1024点FFT变换将FFT IPcore改为Rad
10、ix-4 Burst I/O架构,重新完成上述过程(注意,此时需要uload信号,直接在ctrl模块里置1即可),并对streaming I/O方式的时延、吞吐量以及资源占用情况进行比较。5. 关键代码5.1. Streaming架构下256点FFTinput rst1,output rfd, output dv, output 15:0 output_re, output 15:0output_im, output 1:0 out_block_index);wire rst;assign rst = rst1;wire start;/FFT 开始信号高有效: START 为高表示开始加载数据
11、并计算变换(Burst I/O architectures).wire fwd_inv;/FFT/IFFT指示信号 1:FFT, 0:IFFTwire done;/完成指示,只有一个cycle宽度的高电平,表示处理完成wire busy;/忙指示,该信号为高表示FFT变换计算完毕wire scale_sch_we;/ SCALE_SCH 写使能wire fwd_inv_we;/fwd_inv写使能wire edone;/将完成,在done之前一个周期给出高电平wire 31 : 0 xn;/输入数据,高位为实部wire 7 : 0 xn_index;/xn序号wire 7 : 0 scale_
12、sch;/各个stage的定标调整值wire 31 : 0 xk;/输出数据,高位为实部wire 7 : 0 xk_index;/输出数据序号wire rd_en;/从ROM中读取数据的使能信号wire wr_en;/往RAM里写数据的使能信号wire 9:0 rd_addr;/ROM中读取数据的地址信号wire sclr;/FFT核同步复位信号wire 1:0 rd_block_index; /ROM中存4个块,表示块序号assign fwd_inv_we = 1b0; /不允许修改FFT和IFFT指示assign scale_sch_we = 1b0;/不允许修改scale_schassi
13、gn fwd_inv = 1b1; /FFTassign scale_sch = 8b10_10_10_10;assign rd_addr = rd_block_index, xn_index;assign output_re = xk31:16;assign output_im = xk15:0;/fft控制fft_ctrl ctrl_inst( .clk(clk), .reset(rst), .rd_en(rd_en), .wr_en(wr_en), .done(done), .edone(edone), .rd_block_index(rd_block_index), .out_bloc
14、k_index(out_block_index), .start(start), .rfd(rfd), .dv(dv), .sclr(sclr), .xn_index(xn_index), .xk_index(xk_index) );fft256 fft_inst( .rfd(rfd), .start(start), .fwd_inv(fwd_inv), .dv(dv), .done(done), .clk(clk), .busy(busy), .scale_sch_we(scale_sch_we), .fwd_inv_we(fwd_inv_we), .edone(edone), .xn_re
15、(xn31:16), .xn_im(xn15:0), .xn_index(xn_index), .scale_sch(scale_sch), .xk_re(xk31:16), .xk_im(xk15:0), .xk_index(xk_index), .sclr(sclr);input_rom_I rom_inst_I(.clka(clk),.ena(rd_en),.addra(rd_addr),.douta(xn31:16);input_rom_Q rom_inst_Q(.clka(clk),.ena(rd_en),.addra(rd_addr),.douta(xn15:0);Endmodul
16、e5.2. Streaming架构下1024点FFTtimescale 1ns / 1psmodule fft_top(input clk,input rst1, output dv, output rfd,output 15:0 output_re, output 15:0output_im, output 2:0 out_block_index);wire rst;assign rst = rst1;wire start;/FFT 开始信号高有效: START 为高表示开始加载数据并计算变换(Burst I/O architectures).wire fwd_inv;/FFT/IFFT指示
17、信号 1:FFT, 0:IFFTwire done;/完成指示,只有一个cycle宽度的高电平,表示处理完成wire busy;/忙指示,该信号为高表示FFT变换计算完毕wire scale_sch_we;/ SCALE_SCH 写使能wire fwd_inv_we;/fwd_inv写使能wire edone;/将完成,在done之前一个周期给出高电平wire 31 : 0 xn;/输入数据,高位为实部wire 9 : 0 xn_index;/xn序号wire 9 : 0 scale_sch;/各个stage的定标调整值wire 31 : 0 xk;/输出数据,高位为实部wire 9 : 0
18、xk_index;/输出数据序号wire rd_en;/从ROM中读取数据的使能信号wire wr_en;/往RAM里写数据的使能信号wire 9:0 rd_addr;/ROM中读取数据的地址信号wire sclr;/FFT核同步复位信号wire 2:0 rd_block_index; /ROM中存4个块,表示块序号assign fwd_inv_we = 1b0; /不允许修改FFT和IFFT指示assign scale_sch_we = 1b0;/不允许修改scale_schassign fwd_inv = 1b1; /FFTassign scale_sch = 10b10_10_10_10
19、_10;assign rd_addr = rd_block_index, xn_index;assign output_re = xk31:16;assign output_im = xk15:0;/fft控制fft_ctrl ctrl_inst( .clk(clk), .reset(rst), .rd_en(rd_en), .wr_en(wr_en), .done(done), .edone(edone), .rd_block_index(rd_block_index), .out_block_index(out_block_index), .start(start), .rfd(rfd),
20、 .dv(dv), .sclr(sclr), .xn_index(xn_index), .xk_index(xk_index) );fft1024 fft_inst( .rfd(rfd), .start(start), .fwd_inv(fwd_inv), .dv(dv), .done(done), .clk(clk), .busy(busy), .scale_sch_we(scale_sch_we), .fwd_inv_we(fwd_inv_we), .edone(edone), .xn_re(xn31:16), .xn_im(xn15:0), .xn_index(xn_index), .s
21、cale_sch(scale_sch), .xk_re(xk31:16), .xk_im(xk15:0), .xk_index(xk_index), .sclr(sclr);input_rom_I rom_inst_I(clka(clk),.ena(rd_en),.addra(rd_addr),.douta(xn31:16);input_rom_Q rom_inst_Q(.clka(clk),.ena(rd_en),.addra(rd_addr),.douta(xn15:0)endmodule5.3. Burst I/O架构下1024点FFT变换module fft_top( input cl
22、k, input rst1, output dv, output 15:0 output_re, output 15:0 output_im, output 9:0 xk_index, output rfd ); wire rst;assign rst = rst1;wire start;/FFT 开始信号高有效: START 为高表示开始加载数据并计算变换(Burst I/O architectures).wire fwd_inv;/FFT/IFFT指示信号 1:FFT, 0:IFFTwire done;/完成指示,只有一个cycle宽度的高电平,表示处理完成wire busy;/忙指示,该
23、信号为高表示FFT变换计算完毕wire scale_sch_we;/ SCALE_SCH 写使能wire fwd_inv_we;/fwd_inv写使能wire edone;/将完成,在done之前一个周期给出高电平wire 31 : 0 xn;/输入数据,高位为实部wire 9 : 0 xn_index;/xn序号wire 9 : 0 scale_sch;/各个stage的定标调整值wire 31 : 0 xk;/输出数据,高位为实部wire rd_en;/从ROM中读取数据的使能信号wire wr_en;/往RAM里写数据的使能信号wire 9:0 rd_addr;/ROM中读取数据的地址信
24、号wire sclr;/FFT核同步复位信号assign fwd_inv_we = 1b0; /不允许修改FFT和IFFT指示assign scale_sch_we = 1b0;/不允许修改scale_schassign fwd_inv = 1b1; /FFTassign scale_sch = 10b10_10_10_10_10;assign rd_addr = xn_index;assign output_re = xk31:16;assign output_im = xk15:0;fft_burst fft_inst(.rfd(rfd),.start(start),.fwd_inv(fw
25、d_inv),.dv(dv), .done(done),.clk(clk),.busy(busy),.unload(unload),.scale_sch_we(scale_sch_we),.fwd_inv_we(fwd_inv_we),.edone(edone),.xn_re(xn31:16),.xn_im(xn15:0),.xn_index(xn_index),.scale_sch(scale_sch), .xk_re(xk31:16),.xk_im(xk15:0),.xk_index(xk_index),.sclr(sclr);input_rom_I rom_inst_I(.clka(cl
26、k),.ena(rd_en),.addra(rd_addr),.douta(xn31:16);input_rom_Q rom_inst_Q(.clka(clk),.ena(rd_en),.addra(rd_addr),.douta(xn15:0);endmodule6. 实验结果及分析6.1. Streaming I/O架构256点FFT1) 仿真结果对工程进行仿真,并将仿真结果与老师压缩包中256点FFT结果进行如下比对:为了验证结果的正确性,我们将modelsim中的仿真结果以带符号十进制数形式显示,发现仿真结果与理论输出结果一致,实验正确。2) 上板测试结果连接数码板后,进行测试,并将测
27、试结果与output_data.txt中数据进行比对,找到吻合序列,说明测试结果正确。3) 资源利用情况查看FPGA资源利用情况发现,一共用到了12个乘法器,2068个LUT。LUT的部分还有469个被用作memory,全部都是移位寄存器。在设计fft的IP core的时候,选择了Number of Stages using block ram为3,即4组蝶形运算的前3组为block RAM,最后一组为distributed RAM。具体说明如下:fft_top Project Status Project File:lab3_256.xiseParser Errors:No Errors M
28、odule Name:fft_topImplementation State:Programming File GeneratedTarget Device:xc6slx9-2tqg144 Errors:No ErrorsProduct Version:ISE 13.2 Warnings:123 Warnings (12 new)Design Goal:Balanced Routing Results:All Signals Completely RoutedDesign Strategy:Xilinx Default (unlocked) Timing Constraints:All Con
29、straints MetEnvironment:System Settings Final Timing Score:0 (Timing Report)Device Utilization Summary-Slice Logic UtilizationUsedAvailableUtilizationNote(s)Number of Slice Registers3,10711,44027%Number used as Flip Flops3,106Number used as Latches1Number used as Latch-thrus0Number used as AND/OR lo
30、gics0Number of Slice LUTs2,0685,72036%Number used as logic1,3585,72023%Number using O6 output only620Number using O5 output only70Number using O5 and O6668Number used as ROM0Number used as Memory4691,44032%Number used as Dual Port RAM0Number used as Single Port RAM0Number used as Shift Register469Nu
31、mber using O6 output only148Number using O5 output only1Number using O5 and O6320Number used exclusively as route-thrus241Number with same-slice register load226Number with same-slice carry load15Number with other load0Number of occupied Slices8271,43057%Number of LUT Flip Flop pairs used2,487Number
32、 with an unused Flip Flop2282,4879%Number with an unused LUT4192,48716%Number of fully used LUT-FF pairs1,8402,48773%Number of unique control sets80Number of slice register sites lost to control set restrictions40811,4403%Number of bonded IOBs3810237%Number of LOCed IOBs223857%Number of RAMB16BWERs6
33、3218%Number of RAMB8BWERs6649%Number of BUFIO2/BUFIO2_2CLKs0320%Number of BUFIO2FB/BUFIO2FB_2CLKs0320%Number of BUFG/BUFGMUXs21612%Number used as BUFGs2Number used as BUFGMUX0Number of DCM/DCM_CLKGENs040%Number of ILOGIC2/ISERDES2s02000%Number of IODELAY2/IODRP2/IODRP2_MCBs02000%Number of OLOGIC2/OS
34、ERDES2s02000%Number of BSCANs1425%Number of BUFHs01280%Number of BUFPLLs080%Number of BUFPLL_MCBs040%Number of DSP48A1s121675%Number of ICAPs010%Number of MCBs020%Number of PCILOGICSEs020%Number of PLL_ADVs020%Number of PMVs010%Number of STARTUPs010%Number of SUSPEND_SYNCs010%Number of RPM macros9Av
35、erage Fanout of Non-Clock Nets2.16Performance Summary-Final Timing Score:0 (Setup: 0, Hold: 0, Component Switching Limit: 0)Pinout Data:Pinout ReportRouting Results:All Signals Completely RoutedClock Data:Clock ReportTiming Constraints:All Constraints Met4) 试验时延情况分析根据仿真结果图,第一个上升沿出现的时间为6095100ps,具体情况
36、如下:6.2. Streaming I/O架构1024点FFT1) 理论输出结果将1024点输入数据输入matlab,并在其上生成理论1024点FFT变换结果,具体如下:2) 仿真结果输出仿真结果,并与matlab中的理论结果进行比对,说明如下:由图中可以看出,仿真结果与理论值存在误差,但是差异相对较小,属于误差允许范围内。Matlab是纯理论的计算,不存在外界干扰情况,计算结果严谨精确,而FPGA是用硬件电路实现FFT的附加运算,以寄存器为例,因为其位长有限,当两个浮点数相乘时,必定会出现寄存器位数不够的情况,导致部分数位上的数被舍去,导致了误差的产生。因而,利用FPGA进行FFT变换,运算
37、过程中由于诸多因素的干扰,产生误差在所难免,但只要其控制在允许范围内,则认为计算结果正确。6.3. Streaming架构与Burst I/O架构下1024点FFT比对6.3.1. 时延情况比对分析1) Streaming架构下1024点FFT的时延情况如下:2) Burst I/O架构下1024点FFT的时延情况如下:3) 区别分析说明通过对比可以发,在Streaming I/O架构下,时延为21595100ps,Burst I/O架构下时延为24175100ps,即Burst I/O的架构延时比Streaming I/O架构的延时大。时延的长短与输入信号的长度有关系,如果是输入几组1024
38、长度的信号,Streaming I/O的延时将不受到影响,而Burst I/O的方式则会因为要逐次计算每一组信号,延时将会随之增加。因而,在进行1024点FFT变换时,Burst I/O的架构延时大于Streaming I/O架构的延时。6.3.2. 资源利用情况比对分析1) Streaming架构下1024点FFT的资源利用情况如下:fft_top Project StatusProject File:lab3_4.xiseParser Errors:No Errors Module Name:fft_topImplementation State:Programming File Gene
39、ratedTarget Device:xc6slx9-2tqg144 Errors:Product Version:ISE 13.2 Warnings:Design Goal:Balanced Routing Results:All Signals Completely RoutedDesign Strategy:Xilinx Default (unlocked) Timing Constraints:All Constraints MetEnvironment:System Settings Final Timing Score:0 (Timing Report)Device Utiliza
40、tion Summary-Slice Logic UtilizationUsedAvailableUtilizationNote(s)Number of Slice Registers3,32411,44029%Number used as Flip Flops3,324Number used as Latches0Number used as Latch-thrus0Number used as AND/OR logics0Number of Slice LUTs2,3005,72040%Number used as logic1,5665,72027%Number using O6 out
41、put only646Number using O5 output only39Number using O5 and O6881Number used as ROM0Number used as Memory5631,44039%Number used as Dual Port RAM0Number used as Single Port RAM32Number using O6 output only32Number using O5 output only0Number using O5 and O60Number used as Shift Register531Number usin
42、g O6 output only153Number using O5 output only0Number using O5 and O6378Number used exclusively as route-thrus171Number with same-slice register load160Number with same-slice carry load11Number with other load0Number of occupied Slices8161,43057%Number of LUT Flip Flop pairs used2,604Number with an
43、unused Flip Flop1682,6046%Number with an unused LUT3042,60411%Number of fully used LUT-FF pairs2,1322,60481%Number of unique control sets34Number of slice register sites lost to control set restrictions14311,4401%Number of bonded IOBs3910238%Number of LOCed IOBs223956%Number of RAMB16BWERs63218%Numb
44、er of RAMB8BWERs2643%Number of BUFIO2/BUFIO2_2CLKs0320%Number of BUFIO2FB/BUFIO2FB_2CLKs0320%Number of BUFG/BUFGMUXs1166%Number used as BUFGs1Number used as BUFGMUX0Number of DCM/DCM_CLKGENs040%Number of ILOGIC2/ISERDES2s02000%Number of IODELAY2/IODRP2/IODRP2_MCBs02000%Number of OLOGIC2/OSERDES2s020
45、00%Number of BSCANs040%Number of BUFHs01280%Number of BUFPLLs080%Number of BUFPLL_MCBs040%Number of DSP48A1s1616100%Number of ICAPs010%Number of MCBs020%Number of PCILOGICSEs020%Number of PLL_ADVs020%Number of PMVs010%Number of STARTUPs010%Number of SUSPEND_SYNCs010%Average Fanout of Non-Clock Nets2
46、.13Performance Summary-Final Timing Score:0 (Setup: 0, Hold: 0, Component Switching Limit: 0)Pinout Data:Pinout ReportRouting Results:All Signals Completely RoutedClock Data:Clock ReportTiming Constraints:All Constraints MetBurst I/O2) Burst I/O架构下1024点FFT的资源利用情况如下:fft_top Project StatusProject File
47、:lab3.xiseParser Errors:No Errors Module Name:fft_topImplementation State:Programming File GeneratedTarget Device:xc6slx9-2tqg144 Errors:Product Version:ISE 13.2 Warnings:Design Goal:Balanced Routing Results:All Signals Completely RoutedDesign Strategy:Xilinx Default (unlocked) Timing Constraints:Al
48、l Constraints MetEnvironment:System Settings Final Timing Score:0 (Timing Report)通过观察以上资源利用情况的表Device Utilization Summary-Slice Logic UtilizationUsedAvailableUtilizationNote(s)Number of Slice Registers1,99311,44017%Number used as Flip Flops1,993Number used as Latches0Number used as Latch-thrus0Numbe
49、r used as AND/OR logics0Number of Slice LUTs1,4365,72025%Number used as logic1,1485,72020%Number using O6 output only812Number using O5 output only1Number using O5 and O6335Number used as ROM0Number used as Memory2221,44015%Number used as Dual Port RAM0Number used as Single Port RAM0Number used as S
50、hift Register222Number using O6 output only25Number using O5 output only0Number using O5 and O6197Number used exclusively as route-thrus66Number with same-slice register load65Number with same-slice carry load1Number with other load0Number of occupied Slices5711,43039%Number of LUT Flip Flop pairs used1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法学概论考试中的竞争策略及试题及答案
- 网络管理员的创新思维研讨试题及答案
- 企业社交责任与其战略决策的相互影响试题及答案
- 财政政策与货币政策的互动试题及答案
- 计算机二级VB学习心得分享试题及答案
- 2024年湛江市吴川市公益性岗位人员招聘真题
- 班级工作计划分工
- 2024年首都体育学院辅导员考试真题
- 法学概论系统化学习试题及答案
- 2024年日照市科技中等专业学校招聘教师真题
- 2023-2024学年上海市宝山区八年级(下)期末数学试卷 (含答案)
- 2025年中考数学模拟考试卷(附答案)
- 汽车合伙合同协议书
- 四川省九师联盟2025届高三仿真模拟卷物理试卷及答案(HG)
- 2025年保密法基础知识考试题库带答案(预热题)参考答案详解
- 乙状结肠癌试题及答案
- 2025夏季安徽蚌埠市东方人力资源有限劳务派遣人员招聘30人笔试参考题库附带答案详解
- 2024年贵州铜仁公开招聘社区工作者考试试题答案解析
- 2025年中央民族大学辅导员招聘考试笔试试题(含答案)
- 4、《通向金融王国的自由之路》
- 配料间管理制度(食品)
评论
0/150
提交评论