




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、设计目的:2二、设计要求2三、CRCB环冗余校验简介2四、CRC勺编码原理2五、CRO验原理5(1)CRC马的检错方法5(2)模2除法器5(3)校验位的生成6(4) CRC马的纠错7(5)生成多项式的选取7六、设计方案7(1)采用标准7(2)系统结构设计8(3)模块代码10七、波形结果24八、心得及体会24(1)关于CRC勺了解24(2)关于期待的改进25(3)课程设计总结25九、参考文献:25CRC编码器的设计一、设计目的:掌握CRC勺编码原理及作用,并进行设计。二、设计要求1、阐述CRC勺编码原理及作用2、基于VHDL®言实现CRC勺编码3、写出详细的设计报告(不少于50
2、00字)三、CRC1环冗余校验简介循环冗余校验(CRC是一种根据网络数据封包或电脑档案等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。而且CRM是目前通信系统中最常用的一种差错控制编码,利用其进行检错的过程可简单描述为:在发送端根据要传送的二进制码序列,以一定的规则产生一个校验用的监督码,附在原始信息后边,构成一个新的二进制码序列数,然后发送出去。在接收端根据信息码和CRC码之间所遵循的规则进行检验,一旦传输过程中发生差错,则信息码元与监督码元之间的关
3、系遭到破坏,从而可以发现错误,乃至纠正错误。四、CRC勺编码原理循环冗余校验码(cyclicredundancycheck,CRC)简称为循环码或CRC码。二进制信息沿一条信号线逐位在设备之间传送称为串行传送,CRC码常用于用行传送过程中的检错与纠错。CRC码由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码。其中任意一个二进制位码都可以和一个系数仅为0和'1'取值的多项式对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项532式为x+x+x+x+1对应的代码101111。由上可以看出,CRC多项式是线性结构,可以非常容易地故意改变量据而
4、维持CRC不变。所以尽管在错误检测中非常有用,CRC并不能可靠地校验数据完整性。CRC码的编码格式如图4,1所示,是在k位有效数据之后添加r位校验码,形成总长度为n的CRC码,简写作C(n,k)码。CRC编码的关键技术在于如何从k位信息简便的得到r位校验码,并根据总长度为n的CRC码进行纠错。"小|k|kl|IV他金玛卜CRC校冷凉图4.1设被校验的数据D=Dk_1Dk_2,.D1D0是一个k位的二进制代码,将它表示为一个(k-1)阶的多项式M(x)=Djxk1Dk_2xk2.Rx1D0(1.1)多项式(1-1)中的系数D的取值为0或1,与被校验的数据M一一对应;式中的x是一个伪变量
5、,用xi指明各位的位置。设校验码P长度为r,将被校验数据D左移r位后的结果为,位Dk-1Dk-2.D1D000.00将D左移r位的目的是给D右边添加r个0,形成(k+r)位长度二进制代码,,一一.r,一、一、.其多项式形式为M(x)xx。如图4,1所示,CRCK由k位数据D和r位校验码P组成,求校验码P的多项式R(X)的方法如下:M(x)xrG(x)=Q(x).R(x)G(x)(4-2)Q(x)是商,R(x)是余数,R(x)所对应的二进制代码是校验码P。可以证明存在一个最高次幕为n-k=r的多项式G(x),即式(4-2)中G(x),称为生成多项式。由式(4-2)可以推导出rM(X)XR(X)=
6、M(x)(4-3)G(x)")由式(4-3)可知,CRC码可被G(x)整除,余数必然为0.。根据这一特性,接收方将收到的CRC码被G(x)除,若余数为0,则表明传送过程中没有错误发生,若出现一位错,根据余数与出错位一一对应的关系,可利用余数对错误码进行定位。因此,接收方可根据表4.1发现并纠正1位错。Q6Q5Q4Q3Q2Q1Q0余数出错位止确1100010000无误错1100011001Q01100000010Q11100110100Q21101010011Q31110010110Q41000010111Q50100010101Q6表4.1循环校验码的出错模式对于其验证码,它的编码规
7、则是,如果CRCB共长n个bit,信息码长k个bit,就称为(n,k)码:1、首先将原信息码(kbit)左移r位(k+r=n);2、运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是利用生成多项式g(x)生成CRCK验码。而在构建一个新的CRC多项式或者改进现有的CRC时,一个通用的数学原则是使用满足所有模运算不可分解多项式约束条件的多项式。这种情况下的不可分解是指多项式除了与它自身之外不能被任何其它的多项式整除。如果CRC有多于一个的非零系数,那么CRC能够检查出输入消息中的所有单数据位错误。同时其也可以用于检测短于2k的输入消息中的所有双位错误,其中k是多项式
8、的最长的不可分解部分的长度。另外,如果多项式可以被x+1整除,那么不存在可以被它整除的有奇数个非零系数的多项式。因此,它可以用来检测输入消息中的奇数个错误,就像奇偶校验函数那样。五、CRC校验原理(1)CRC码的检错方法假设要进行校马的数据信息M(x)为一个n位的二进制数据,将M(x)左移k位后,用一个约定的生成多项式g(x)相除,将所得校验位拼接到M(x)的n位数据后面,形成一个n+k位的代码,称这个代码为循环冗余校验(CRC)码,也称(n+k,n)码。数据.一,L校验位k一.CRC码伍+k)图5.1CRC码结构(2)模2除法器模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一
9、位借位,所以实际上就是异或。它是CRCK验中的一个十分重要的部分,用于得到校验码。1010010010110011/101I101iUKMMXH)1001110001Mil1010110011Il(W-II101101001110100moiiOlli图5.2模2除法器示例如图所示,用10011来除101110110100000大致方法与二进制除法相同,但是相比之下,模2除法没有进位与借位,所以在相减的时候,则做异或运算。前面为0的可以直接省略,从第一位为1开始计数。(3)校验位的生成假设:要传送的数据信息为:100011,即报文多项式为:Mx)=x5x1约定的生成多项式为:3g(x)=x1则
10、数据信息位数n=6,生成多项式位数为4位,所以校验位位数k=3。生成校验位时,用x3M(x内除以g(x),相除时采用“模2运算”的多项式除法。利用“模2”多项式除法计算x3M(x广g(x)的过程。则有:3843.32xMx-g(x)=xxxI-Ix1=xx1校验位为111,CRC码为100011111。说明:如果要校验CRC码,则可将CRC码用同一个多项式相除,若余数为0,则说明无错;若余数不为0,则说明有错。1001111001/10001100071001J0011,00®01110000|IIW10011H0_1001111010,_川校验位图5.3校验位生成示例(4)CRC码
11、的纠错在接收方将收到的CRC码用约定的生成多项式g(x)去除,如果码字没有错误,则余数为0,若有一位出错,则余数不为0,而且不同的出错位置其余数不同。更换不同的码字,余数和出错位的关系不变。只和码制与生成多项式有关。如果CRC码中有一位出错,用特定的g(x)作模2除,则会得到一个不为0的余数。若对余数补0后继续除下去,则会出现一个有趣的现象:各次余数将会按照一个特定的顺序循环。(5)生成多项式的选取从查错和纠错的要求来看,选取的一个生成多项式应满足以下几个条件:1、任何一位发生错误时,都应使余数不为002、不同位发生错误时,余数应该不同。3、对余数作模2除时,应使余数循环。六、设计方案(1)采
12、用标准根据应用环境与习惯的不同,CRC又可分为以下几种标准:1、CRC-12码;2、CRC-16码;3、CRC-CCITT码;4、CRC-32码;它们都是较为常用的CRC码,生成多项式分别为:CRC-CCITT:g(x)=x16x12x51CRC-16:g(x)=x16x15x21CRC-12:g(x)-x12x11x3x2x13226231612111087542CRC-32:g(x)=xxxxxxxxxxxxx1标准的CRCK是CRC-CCIT不口CRC-16其中CRC-16-CCITT的应用最广泛,在蓝牙、X25和PPP协议中等都有应用。故本实验使用CRC-CCITT标准进行仿真,其生成
13、多项式为:g(x)=x16x12x51本实验采用如图6,1所示的结构实现CRC的编解码。(2)系统结构设计图6.1CRC校验系统结构CRC编码采用如图6,2所示的结构实现:clkdinlxorclkCCxorclkcdclkCCclkcd0r图6.2CRC编码实现结构CRC校验采用多项式除法实现,若V(x)能除尽g(x),则传输正确,否则错误。实现结构上,在发送端进行CRC-CCITT标准编码,在接收端将信源数据与编码字串行输入与发送端相同的CRC编码器,若编码字为全零,则无传输错误,否则,传输出错。发送端CRC编码器设计时序如图6,3所示。接收端CRC校验时序与发送端相同,区别只在于无需顺序
14、移出CRC编码字,只需判断是否为全零即可。引入噪声的结构如图7所示,其中噪声来源为随机产生的比特序列,与帧解析的数据输出进行异或,其原理为dout与0异或仍为dout,dout与1异或为dout,因此噪声序列只需随机引入几个1即可实现传输错误的模拟。din_dvdin一:dincnt_en一icnt,0j<63-64,f7879dout_dvdoutdin父crc)clr图6.3发送端CR诉码时序图dindindverrorerror图6.4引入噪声仿真结构图6.4中frame模块实现的是组帧功能,根据RS-232的组帧格式,在有效数据前加一比特起始位0,数据结束后加一比特停止位1,其时
15、序图如图6.5所示。din_dv_dindincnt_encnt<0_1、79_80dout<0din入1图6.5frame模块端口时序图6.4中framereceive模块实现帧解析功能,它根据发送端发送的数据,检测到一个起始位零,即生成计数使能信号,生成数据有效信号data_dv,其时序图如图6.6所示。clk_TLTT_rR_m_rmLm_LL_Ldin、0din>/1data_dvcnt<01)x79dout_dvdoutdin、图6.6receive模块时序(3)模块代码(1)toplibraryIEEE;useIEEE.STD_LOGIC_1164.ALL;
16、useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycrc_ansisport(clk:instd_logic;reset:instd_logic;din:instd_logic;din_dv:instd_logic;noise:instd_logic;error_right:outstd_logic;error_noise:outstd_logic);endcrc_ans;architecturebehavioralofcrc_ansiscomponentcrc_codeport(clk:instd_logic;r
17、eset:instd_logic;din:instd_logic;din_dv:instd_logic;dout_dv:outstd_logic;dout:outstd_logic);endcomponent;componentcrc_frameport(clk:instd_logic;reset:instd_logic;din:instd_logic;din_dv:instd_logic;dout:outstd_logic);endcomponent;componentcrc_frame_receiveport(clk:instd_logic;reset:instd_logic;din:in
18、std_logic;dout_dv:outstd_logic;dout:outstd_logic);endcomponent;componentcrc_checkport(clk:instd_logic;reset:instd_logic;din:instd_logic;din_dv:instd_logic;error:outstd_logic);endcomponent;signalcode_dout,code_dout_dv:std_logic;signalframe_dout:std_logic;signalframe_receive_dout,frame_receive_dout_no
19、ise,frame_receive_dout_dv:std_logic;beginpart1:crc_codeportmap(clk=>clk,reset=>reset,din=>din,din_dv=>din_dv,dout=>code_dout,dout_dv=>code_dout_dv);part2:crc_frameportmap(clk=>clk,reset=>reset,din=>code_dout,din_dv=>code_dout_dv,dout=>frame_dout);part3:crc_frame_rece
20、iveportmap(clk=>clk,reset=>reset,din=>frame_dout,dout=>frame_receive_dout,dout_dv=>frame_receive_dout_dv);part4_no_noise:crc_checkportmap(clk=>clk,reset=>reset,din=>frame_receive_dout,din_dv=>frame_receive_dout_dv,error=>error_right);frame_receive_dout_noise<=frame_r
21、eceive_doutxornoise);part5_noise:crc_checkportmap(clk=>clk,reset=>reset,din=>frame_receive_dout_noise,din_dv=>frame_receive_dout_dv,error=>error_noise);endbehavioral;(2)codelibraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycrc_code
22、isport(clk:instd_logic;reset:instd_logic;din:instd_logic;din_dv:instd_logic;dout_dv:outstd_logic;dout:outstd_logic);endcrc_code;architecturebehavioralofcrccodeissignalcnt:std_logic_vector(6downto0);signalcnt_en:std_logic;signald1:std_logic_vector(15downto0);beginprocess(clk,reset)beginifreset='0
23、'thencnt_en<='0'elsifclk'eventandclk='1'thenifcnt="1001111"thencnt_en<='0'elsifdin_dv='1'thencnt_en<='1'endif;endif;endprocess;process(clk,reset)beginifreset='0'thencnt<="0000000"elsifclk'eventandclk='1
24、39;thenifcnt_en='1'thencnt<=cnt+'1'endif;endif;endprocess;process(clk,reset)beginifreset='0'thendout_dv<='0'elsifclk'eventandclk='1'thenifdin_dv='1'thendout_dv<='1'elsifcnt="1001111"thendout_dv<='0'endif;endif;
25、endprocess;process(clk,reset)beginifreset='0'thend1<=(others=>'0');elsifclk'eventandclk='1'thenifdin_dv='1'thend1(0)<=dinxord1(15);d1(1)<=d1(0);d1(2)<=d1(1);d1(3)<=d1(2);d1(4)<=d1(3);d1(5)<=d1(4)xor(dinxord1(15);d1(6)<=d1(5);d1<=d1(6)
26、;d1(8)<=d1;d1(9)<=d1(8);d1(10)<=d1(9);d1(11)<=d1(10);d1(12)<=d1(11)xor(dinxord1(15);d1(13)<=d1(12);d1(14)<=d1(13);d1(15)<=d1(14);elsed1(0)<='0'd1(1)<=d1(0);d1(2)<=d1(1);d1(3)<=d1(2);d1(4)<=d1(3);d1(5)<=d1(4);d1(6)<=d1(5);d1<=d1(6);d1(8)<=d1;
27、d1(9)<=d1(8);d1(10)<=d1(9);d1(11)<=d1(10);d1(12)<=d1(11);d1(13)<=d1(12);d1(14)<=d1(13);d1(15)<=d1(14);endif;endif;endprocess;process(clk,reset)beginifreset='0'thendout<='0'elsifclk'eventandclk='1'thenifdin_dv='1'thendout<=din;elsedout<
28、;=d1(15);endif;endif;endprocess;endbehavioral;(3)crclibraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycrcisport(clk:instd_logic;rst:instd_logic;din:instd_logic;data:outstd_logic;error:outstd_logic);endcrc;architecturebehavioralofcrcissignald1,d2:
29、std_logic_vector(15downto0):=(others=>'0');signaldin_dv,cnt1_en,dout1_dv:std_logic;signalcnt1,cnt2:std_logic_vector(6downto0):=(others=>'0');signaldout1:std_logic;signalcnt3:std_logic_vector(6downto0);signalcnt2_en,flag,dout2:std_logic;beginprocess(clk,rst)beginifrst='0'
30、;thendout1_dv<='0'din_dv<='0'elsifclk'eventandclk='1'thenifcnt2<="1001111”thendout1_dv<='1'cnt2<=cnt2+'1'ifcnt1<="0111111"thendin_dv<='1'cnt1<=cnt1+'1'elsedin_dv<='0'endif;elsedout1_dv<=&
31、#39;0'endif;endif;endprocess;process(clk,rst)beginifrst='0'thendout1<='0'elsifclk'eventandclk='1'thenifdout1_dv='1'thenifdin_dv='1'thendout1<=din;d1(0)<=dinxord1(15);d1(1)<=d1(0);d1(2)<=d1(1);d1(3)<=d1(2);d1(4)<=d1(3);d1(5)<=d1(
32、4)xor(dinxord1(15);d1(6)<=d1(5);d1<=d1(6);d1(8)<=d1(7);d1(9)<=d1(8);d1(10)<=d1(9);d1(11)<=d1(10);d1(12)<=d1(11)xor(dinxord1(15);d1(13)<=d1(12);d1(14)<=d1(13);d1(15)<=d1(14);elsifdin_dv<='0'thendout1<=d1(15);d1(0)<='0'd1(1)<=d1(0);d1(2)<=d1
33、(1);d1(3)<=d1(2);d1(4)<=d1(3);d1(5)<=d1(4);d1(6)<=d1(5);d1<=d1(6);d1(8)<=d1(7);d1(9)<=d1(8);d1(10)<=d1(9);d1(11)<=d1(10);d1(12)<=d1(11);d1(13)<=d1(12);d1(14)<=d1(13);d1(15)<=d1(14);endif;endif;endif;endprocess;process(clk,rst)beginifrst='0'thendout1<
34、='0'elsifclk'eventandclk='1'thenifdout1_dv'eventanddout1_dv='0'thendout1<='1'endif;endif;endprocess;flag<=dout1;process(clk,rst)beginifrst='0'thenflag<='1'cnt3<=(others=>'0');elsifclk'eventandclk='1'thenifcnt3
35、<"1010000”thencnt3<=cnt3+'1'endif;endif;process(clk,rst)beginifrst='0'thendata<='0'elsifclk'eventandclk='1'thenifcnt3<="1010000”thend2(0)<=dout1xord2(15);d2(1)<=d2(0);d2(2)<=d2(1);d2(3)<=d2(2);d2(4)<=d2(3);d2(5)<=d2(4)xor(do
36、ut1xord2(15);d2(6)<=d2(5);d2<=d2(6);d2(8)<=d2;d2(9)<=d2(8);d2(10)<=d2(9);d2(11)<=d2(10);d2(12)<=d2(11)xor(dout1xord2(15);d2(13)<=d2(12);d2(14)<=d2(13);d2(15)<=d2(14);ifcnt2<="1000000"thendata<=dout2;endif;endif;endif;endprocess;process(clk,rst)beginifrst
37、='0'thenerror<='1'elsifclk'eventandclk='1'thenifcnt3="1000000"thenerror<=d2(0)andd2andd2(2)andd2(3)andd2(4)andd2(5)andd2(6)andd2andd2(8)andd2(9)andd2(10)andd2(11)andd2(12)andd2(13)andd2(14)andd2(15);endif;endif;endprocess;(4)framelibraryIEEE;useIEEE.STD_LO
38、GIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityframeisport(clk,reset:instd_logic;din,din_dv:instd_logic;dout:outstd_logic);endframe;architecturebehaviorofframeissignala,cnt_en:std_logic;signalcnt:integer;begincnt_en_pro:process(clk,reset)beginifreset='0'thencnt
39、_en<='0'elsifclk'eventandclk='1'thenifcnt=80thencnt_en<=0;elsifdin_dv='1'thencnt_en<='1'endif;endif;endprocess;cnt_pro:process(clk,reset)beginifreset='0'thencnt<=0;elsifclk'eventandclk='1'thenifcnt=80thencnt<=0;elsifcnt_en='1
40、'thencnt<=cnt=1;endif;endif;endprocess;dout_pro:process(clk,reset)beginifreset='1'thendout<='0'elsif(clk'eventandclk='1')thendind<=din;if(din_dv='1'andcnt_en='0')thendout<='0'elsif(cnt_en='1'andcnt=80)thendout<='1'
41、;elsif(cnt_en='1'andcnt>=0andcnt<80)thendout<=dind;endif;endif;endprocess;endbehavior;(5)receivelibraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycrc_frame_receiveisport(clk:instd_logic;reset:instd_logic;din:instd_logic;dout_dv:o
42、utstd_logic;dout:outstd_logic);endcrc_frame_receive;architecturebehavioralofcrc_frame_receiveissignalcnt:std_logic_vector(6downto0);signaldata_dv:std_logic;beginprocess(clk,reset)beginifreset='0'thendata_dv<='0'elsifclk'eventandclk='1'thenifdin='0'andcnt<&qu
43、ot;1001111"thendata_dv<='1'elsifcnt="1001111"thendata_dv<='0'endif;endif;endprocess;process(clk,reset)beginifreset='0'thencnt<=(others=>'0');elsifclk'eventandclk='1'thenifdata_dv='1'thencnt<=cnt+1;endif;endif;endproces
44、s;process(clk,reset)beginifreset='0'thendout_dv<='0'dout<='0'elsifclk'eventandclk='1'thenifdata_dv='1'thendout_dv<='1'dout<=din;elsifdata_dv='0'anddin='1'thendout_dv<='0'dout<='0'endif;endif;endproc
45、ess;endbehavioral;(6)checklibraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycrc_checkisport(clk:instd_logic;reset:instd_logic;din:instd_logic;din_dv:instd_logic;error:outstd_logic);endcrc_check;architecturebehavioralofcrc_checkissignalcnt:std_log
46、ic_vector(6downto0);signalcnt_en,din1:std_logic;signald1:std_logic_vector(15downto0);beginprocess(clk,reset)beginifreset='0'thencnt_en<='0'elsifclk'eventandclk='1'thenifcnt="1001111”thencnt_en<='0'elsifdin_dv='1'thencnt_en<='1'endif;e
47、ndif;endprocess;process(clk,reset)beginifreset='0'thencnt<="0000000"elsifclk'eventandclk='1'thenifcnt_en='1'thencnt<=cnt+'1'endif;endif;process(clk,reset)beginifreset='0'thend1<=(others=>'0');elsifclk'eventandclk='1
48、9;thenifdin_dv='1'thend1(0)<=dinxord1(15);d1(1)<=d1(0);d1(2)<=d1(1);d1(3)<=d1(2);d1(4)<=d1(3);d1(5)<=d1(4)xor(dinxord1(15);d1(6)<=d1(5);d1<=d1(6);d1(8)<=d1;d1(9)<=d1(8);d1(10)<=d1(9);d1(11)<=d1(10);d1(12)<=d1(11)xor(dinxord1(15);d1(13)<=d1(12);d1(14)<=d1(13);d1(15)<=d1(14);endif;endif;endprocess;process(clk,reset)beginifreset='0'thenerror&l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》考前冲刺训练试卷及完整答案详解【全优】
- 农副食品新品种选育与繁殖技术推广创新创业项目商业计划书
- 教师招聘之《小学教师招聘》练习题库(满分必刷)附答案详解
- 教师招聘之《小学教师招聘》考试押题密卷含答案详解(预热题)
- 2025年呼伦贝尔莫力达瓦达斡尔族自治旗内蒙古大学校园引才笔试备考附答案详解
- 教师招聘之《幼儿教师招聘》含答案详解【培优b卷】
- 水利部旱情遥感监测系统建设与展望中国水利水电科学研究院
- 教师招聘之《小学教师招聘》检测卷讲解附参考答案详解(能力提升)
- 2025年教师招聘之《小学教师招聘》练习题库附答案详解【研优卷】
- 2025年工业互联网区块链智能合约安全漏洞扫描与修复技术解析报告001
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- 2025年国家保安员资格考试复习题库(附答案)
- 辅警考试真题(含答案)
- 新式茶饮基础知识培训课件
- 2025新疆天泽和达水务科技有限公司部分岗位社会招聘28人笔试模拟试题及答案解析
- 巧堆肥劳动课件
- 技术方案评审表-技术选型决策
- 万用表专业培训资料共23张课件
- 启闭机设备安装与调试施工方案
评论
0/150
提交评论