版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章状态机本章概要本章重点阐述有限状态机的设计方法。该方法基于系统状态的深入分析和精确描述,其核心在于明确定义状态转移条件,并通过状态图或状态表等可视化工具进行表征。有限状态机特别适用于系统状态数量有限且规模可控的场景。对于状态转换关系清晰的电路系统,采用有限状态机进行描述不仅能够简化设计过程,更能发挥模块化设计的优势,从而提高系统的可维护性和可扩展性。本章概要状态机,也称为有限状态机(FiniteStateMachine,FSM),是一种用于描述系统行为的计算模型。它通过定义一组有限的状态集合、输入事件、输出事件以及状态之间的转移规则,来模拟系统在不同条件下的行为变化。状态机的核心思想是,系统在任何时刻都处于某个特定的状态,并且根据接收到的输入事件,系统会执行相应的动作并转移到新的状态。本章概要状态机的优点在于其简单易懂、易于实现和维护。通过明确的状态定义和转换规则,状态机能够有效地简化复杂逻辑的实现,提高系统的可维护性和可靠性。此外,状态机还具有很高的灵活性和可扩展性,能够适应不同的应用场景和需求。有限状态机01Part1有限状态机1.1状态机分类从进程来考虑,状态机设计关注电路的当前状态和下一个状态,即现态和次态。在时钟信号的触发下,次态会变成现态,同时又产生下一个次态。而根据电路的输出是否与输入有关,有限状态机可以分为两种类型:12Moore(摩尔型)状态机——输出仅与电路的当前状态,与电路的输入无关。状态结构模型如图6-2所示。在Moore型状态机中,无论输入如何变化,只要当前状态不变,输出就保持不变。这种类型的状态机常用于实现那些输出主要取决于系统状态而不是输入情况的场景。3Mealy(米里型)状态机——输出不仅与电路当前的状态有关,还与电路的输入有关。状态结构模型如图6-1所示。在Mealy型状态机中,输出是在转移发生之前计算的,这意味着输出可以立即反映输入的变化。这种类型的状态机适用于需要快速响应输入变化的系统。1有限状态机1.1状态机分类Mealy状态机的状态结构模型1有限状态机1.1状态机分类Moore状态机的状态结构模型1有限状态机1.1状态机分类两种状态机的区别仅在于输出是否与输入有关编写状态机程序的区别就在于描述输出逻辑的程序块是否使用了输入信号作为激励。1有限状态机1.1状态机分类设计一个状态机,一般来说,可以按以下步骤思考:(1)根据电路需求,确定采用Mealy状态机还是Moore状态机;(2)划分电路状态,做到无遗漏;(3)为每个状态分配唯一的编码,以确保每个状态都能被唯一识别。这里还要考虑状态编码方法,如二进制编码、格雷码等。状态编码的选择会影响FSM的性能和资源消耗。(4)确定每个状态下的状态转移逻辑和输出,以状态图方式体现系统的响应。(5)对状态图进行优化,尽可能减少状态数量和复杂度,以提高状态机工作效率。1有限状态机1.2状态图与状态表状态图和状态表是电路设计中两种重要的工具,它们用于描述数字逻辑电路在不同输入条件下的状态转换逻辑和产生的输出。现态次态/输出输入A=0输入A=10000/010/00100/101/01000/111/01100/101/01有限状态机1.2状态图与状态表在实际设计过程中,状态图和状态表往往结合使用,以充分发挥它们的优势。对于过于复杂的电路,状态图和状态表可能会变得非常庞大和难以管理,且不便于直接转化为硬件实现在Quartus软件中打开Tools→Netlistviewers→StateMachineviewer可以查阅电路设计的状态图。1有限状态机1.3状态机程序设计方法状态机的程序写法可以分为一段式、二段式和三段式。一段式将所有状态机逻辑放在一个always过程块里,不利于代码的阅读维护,常用的是二段式和三段式。1有限状态机二段式二段式将状态机的实现分为两个主要部分:状态转移逻辑和输出逻辑。需要定义两个状态:现态和次态。在二段式写法中,Verilog程序使用两个always过程块,一个always过程块采用同步时序描述次态和现态之间的状态转移,另一个always过程块采用组合逻辑描述状态转移逻辑和输出。程序里关于状态的语句主要有四个部分。1有限状态机状态参数定义首先,定义状态机的所有可能状态。可以通过参数定义,如parameter[1:0]s0=0,s1=1,s2=2,s3=3;//定义了状态名和各状态的二进制编码1有限状态机状态寄存器定义定义现态和次态两个状态寄存器来存储状态。如reg[1:0]current_state,next_state;//2位变量,最多能容纳4个状态变化1有限状态机状态转移逻辑用一个always过程块描述状态图中的状态转移逻辑和输出。在状态机的描述中,Moore型和Mealy型关于输出逻辑的always过程块描述存在差异。在Moore型状态机中,输出信号的产生仅依赖于当前的状态,always过程块的敏感事件只有当前状态。而Mealy型状态机的输出不仅依赖于当前状态,还依赖于当前的输入信号,always过程块的敏感事件需要考虑当前状态和输入信号的组合。1有限状态机状态转移逻辑举一个Moore型状态机的例子always@(current_state)begincase(current_state)//根据当前状态进行判断S0:beginnext_state=S1;out=0;endS1:beginnext_state=S2;out=0;endS2:beginnext_state=S3;out=1;enddefault:beginnext_state=S0;out=0;endendcaseend1有限状态机状态更新用一个always过程块描述在时钟触发时,时序逻辑中状态寄存器的同步。如always@(posedgeclk)beginif(reset)begincurrent_state<=S0;//回到初始状态endelsebegincurrent_state<=next_state;//同步状态更新endend1有限状态机三段式三段式使用三个always过程块,将组合逻辑与时序逻辑分开,将输出与状态分开。即一个always过程块描述次态与现态之间的状态更新,一个always过程块描述状态转移逻辑,还有一个always过程块专门描述输出变化。程序里关于状态的语句主要有五个部分。状态参数及状态寄存器的定义和二段式相同,区别在于三个always过程块。1有限状态机状态转移逻辑用一个always过程块描述状态图中的状态转移逻辑,根据现态确定次态。如always@(current_stateordata)begincase(current_state)//根据当前状态进行判断S0:next_state=S1;S1:if(data==1)next_state=S2;elsenext_state=S1;S2:next_state=S3;default:next_state=S0;endcaseend1有限状态机状态更新用一个always过程块描述在时钟触发时,时序逻辑中状态寄存器的同步。如always@(posedgeclk)beginif(reset)begincurrent_state<=S0;//回到初始状态endelsebegincurrent_state<=next_state;//同步状态更新endend1有限状态机输出逻辑第3个always过程块专门描述输出逻辑。如always@(current_stateordata)begincase(current_state)S0:output=1'b0;S1:output=1'b0;S2:if(data==1)output=1'b0;elseoutput=1'b1;default:output=1'b0;endcaseend第6章状态机跑马灯02Part2状态机设计举例2.1跑马灯这里通过用LED和七段译码显示器两种显示器件实现跑马灯。2状态机设计举例LED跑马灯用开发板上的LED实现跑马灯效果,LED编号如图采用状态机设计,需要确定跑马灯的工作模式、每种模式的LED状态、状态持续时间等。2状态机设计举例工作模式工作模式是从所有LED的状态组合出发,考虑整体呈现效果的安排。以下列举几种工作模式。1依次点亮模式:按照编号1--2--3--4--5--6--7--8的顺序点亮每个LED2奇偶切换模式:奇数灯1/3/5/7和偶数灯2/4/6/8切换点亮3花式点亮模式:按照“1/2--3/4/5/6--7/8”(或者其它组合)的方式点亮42状态机设计举例LED状态每种工作模式里都包含若干状态的切换,对状态进行编码,通过状态图表示出各个状态之间的跳转关系。2状态机设计举例L需求分析1.需求分析8个LED依次点亮说明需要8个状态进行循环,另设定一个初始状态是8个LED都没有点亮,则电路一共呈现9个状态,分别命名为S0~S8,例6.1将8个LED进行500ms间隔的依次点亮实现跑马灯效果。2状态机设计举例LED状态(b)独热码(c)二进制编码给这9个状态进行编码可以有独热码和二进制两种编码方式,独热码每次只有一位有效,大大简化了译码逻辑,减少了毛刺产生的概率,调试也更容易定位。二进制编码使用较少的位数来表示相同的状态数,在存储和传输大量数据时,二进制编码更加高效。2状态机设计举例定义状态参数与状态寄存器这里有9个状态,参数名定义为S0~S9,使用独热码需要定义为8位二进制数。parameter[7:0]S0=8'b00000000,S1=8'b00000001,S2=8'b00000010, S3=8'b00000100,S4=8'b00001000,S5=8'b00010000, S6=8'b00100000,S7=8'b01000000,S8=8'b10000000;状态寄存器定义如下,这里的状态寄存器要定义为8位寄存器,与状态参数相一致。reg[7:0]current_state,next_state;2状态机设计举例描述状态转换逻辑状态机采用三段式写法,第一个always过程块描述状态转移逻辑。always@(current_state)begincase(current_state)//根据当前状态进行判断S0:next_state=S1;S1:next_state=S2;S2:next_state=S3;S3:next_state=S4;S4:next_state=S5; S5:next_state=S6;S6:next_state=S7;S7:next_state=S8;default:next_state=S0;endcaseend2状态机设计举例描述状态更新第二个always过程块描述在时钟触发时,时序逻辑中状态寄存器的同步。always@(posedgeclkorposedgerst)beginif(reset)begincurrent_state<=S0;endelsebegincurrent_state<=next_state;endend2状态机设计举例描述输出逻辑第三个always过程块专门描述输出逻辑。always@(current_state)begincase(current_state) S0:led=8’b00000000; S1:led=8’b00000001; S2:led=8’b00000010; S3:led=8’b00000100; S4:led=8’b00001000; S5:led=8’b00010000; S6:led=8’b00100000; S7:led=8’b01000000; S8:led=8’b10000000; default:led=8’b00000000;endcaseend2状态机设计举例设计代码8位LED跑马灯的完整代码如下:modulemarquee_LED(clk,rst,led);inputclk,//时钟信号inputrst,//复位信号outputreg[7:0]led//LED输出
parameter[7:0]
S0=8'b00000000,S1=8'b00000001,S2=8'b00000010,
S3=8'b00000100,S4=8'b00001000,S5=8'b00010000, S6=8'b00100000,S7=8'b01000000,S8=8'b10000000;
reg[7:0]current_state,next_state;always@(current_state)begincase(current_state)S0:next_state=S1; S1:next_state=S2;S2:next_state=S3; S3:next_state=S4;S4:next_state=S5; S5:next_state=S6;S6:next_state=S7; S7:next_state=S8; S8:next_state=S1;default:next_state=S0;endcaseend2状态机设计举例描述输出逻辑always@(posedgeclkorposedgerst)beginif(rst)begincurrent_state<=S0;endelsebegincurrent_state<=next_state;endend
always@(current_state)begincase(current_state)S0:led=8'b00000000;S1:led=8'b00000001; S2:led=8'b00000010; S3:led=8'b00000100; S4:led=8'b00001000;S5:led=8'b00010000; S6:led=8'b00100000; S7:led=8'b01000000; S8:led=8'b10000000; default:led=8'b00000000;endcaseendendmodule2状态机设计举例描述输出逻辑在Quartus软件中打开Tools→Netlistviewers→StateMachineviewer,看到的状态机2状态机设计举例描述输出逻辑LED跑马灯的波形仿真2状态机设计举例七段译码显示器跑马灯在七段译码显示器上的跑马灯原理类似于LED跑马灯,但它具有字符显示的优势,可以在每个显示位置显示出更多样化的图案。2状态机设计举例需求分析七段译码显示器的日期显示例6.2在四个七段译码显示器上进行日期的切换显示。2状态机设计举例需求分析将日期分为年、月、日三部分进行切换显示,为了更好区分“月”和“日”的数字含义,显示“日”的时候数字放在中间,两边不加标记。(a)“年”显示(b)“月”显示(c)“日”显示2状态机设计举例需求分析(1)系统显示说明系统使用四个七段译码显示器,虽然每次都要同时显示四个字符,但实际上只有两个字符需要根据系统输入的日期进行变化。为了节约系统资源,日期变量只定义变化的字符,不变字符作为常量加入,不参与状态转换。定义两位十进制数year、month和day为日期的输入变量。当显示“年”时,需要改变的是年份的后两位,而前两位20作为常量可以保持不变,这时四个七段码显示数值为{20,year},也就是{14'b0010010_0000001,year}。显示“月”时,月份显示在中间,左右两边的七段码显示器固定显示“—”,即{7’b1111110,month,7’b1111110}。显示“日”时,日子显示在中间,左右两边的七段码显示器显示为空,即全都不亮,即{7’b1111111,day,7’b1111111}。2状态机设计举例需求分析(2)状态参数与状态寄存器设计状态机,将“年”“月”“日”三种显示状态分别定义为Syear、Smon和Sday,需要使用2位二进制编码。定义语句如下:parameter[1:0]Syear=2’b00,Smon=2’b01,Sday=2’b10;状态寄存器要与状态参数相一致,定义为2位寄存器,定义如下:reg[1:0]current_state,next_state;2状态机设计举例需求分析(2)描述状态转换逻辑按照年→月→日→年的顺序循环显示,状态转换逻辑的过程块如下,实现了状态转换。always@(current_state)begincase(current_state)//根据当前状态进行判断Syear:next_state=Smon;Smon:next_state=Sday;Sday:next_state=Syear;endcaseend2状态机设计举例需求分析(3)描述状态更新的时序逻辑默认状态为Idle,否则每个时钟边沿触发时,进行次态与现态的传递。always@(posedgeclkornegedgereset)if(!reset)current_state<=Idle;elsecurrent_state<=next_state;2状态机设计举例需求分析(4)描述输出(日期)这个过程块的输出是日期DATE,包含三种值:年、月、日,将year、month和day三个输入端口的值通过DATE端口进行循环输出。DATE须定义为与最大的数据范围一致,能显示0~99(年的范围),因此定义为7位数据。always@(current_state)begincase(current_state) Syear:DATE=year; Smon:DATE=month; Sday:DATE=day; endcaseend2状态机设计举例需求分析(5)日期对应的七段译码显示器输出将日期DATE(两位十进制数)使用两个七段译码显示器disp1和disp0分别显示两位十进制数的高位(十位)和低位(个位),程序中仅在case语句的判断条件上有所不同。日期的十位数用date/10计算,执行语句为:case(date/10)//显示十进制数的高位日期的个位数用date%10计算,执行语句为:case(date%10)//显示十进制数的低位
2状态机设计举例Verilog代码程序有两个模块。(1)顶层模块marquee_DISP将日期(年月日)进行跑马灯式的循环输出,其中例化了子模块date2doub_disp三次,然后将产生的两个七段码显示数值与左右两边的固定数值相结合形成完整的四个七段码显示。2状态机设计举例Verilog代码/*顶层模块*/modulemarquee_DISP(clk,reset,year,month,day,DISP);inputclk,reset;input[6:0]year;//年份后两位需要使用7位二进制,表示00~99input[3:0]month;//月份只需要使用4位二进制,表示1~12input[4:0]day;//日需要使用5位二进制,表示0~31outputreg[27:0]DISP;//包含四个七段译码器的显示输出
parameter[1:0]Syear=2'b00,Smon=2'b01,Sday=2'b10,Idle=2'b11;reg[1:0]current_state,next_state;wire[13:0]dis_year,dis_month,dis_day;
always@(current_state)begincase(current_state)//根据当前状态进行判断Syear:next_state=Smon; Smon:next_state=Sday;Sday:next_state=Syear; default:next_state=Syear;endcaseend2状态机设计举例Verilog代码always@(posedgeclkornegedgereset)beginif(!reset)current_state<=Syear;elsecurrent_state<=next_state;end
always@(current_state,year,month,day)begincase(current_state) Syear:DISP={14'b0010010_0000001,dis_year};//年份数值前两位固定为20 Smon:DISP={7'b1111110,dis_month,7'b1111110};//7’b0000001表示只点亮显示器的g段 Sday:DISP={7'b1111111,dis_day,7'b1111111};//7’b0000000表示显示器7个段都不亮 default:DISP=28'b0; endcaseend
date2doub_dispU1(year,dis_year[13:7],dis_year[6:0]);//例化子模块,将“年”转化为显示输出date2doub_dispU2(month,dis_month[13:7],dis_month[6:0]);//例化子模块,将“月”转化为显示输出date2doub_dispU3(day,dis_day[13:7],dis_day[6:0]);//例化子模块,将“日”转化为显示输出
endmodule2状态机设计举例Verilog代码(2)子模块date2doub_disp/*将两位数日期转化为两个七段译码显示器的输出*/moduledate2doub_disp(date,disp1,disp0);input[6:0]date;output[16:0]disp1,disp0;
reg[6:0]disp1,disp0;//数值依次对应abcdefg,低电平有效always@(date)begin case(date/10)//显示十进制数的高位 4'h0:disp1=7'b0000001; 4'h1:disp1=7'b1001111; 4'h2:disp1=7'b0010010; 4'h3:disp1=7'b0000110; 4'h4:disp1=7'b1001100; 4'h5:disp1=7'b0100100; 4'h6:disp1=7'b0100000; 4'h7:disp1=7'b0001111; 4'h8:disp1=7'b0000000; 4'h9:disp1=7'b0000100; default:disp1=7'b1111111; endcase2状态机设计举例Verilog代码case(date%10)//显示十进制数的低位 4'h0:disp0=7'b0000001; 4'h1:disp0=7'b1001111; 4'h2:disp0=7'b0010010; 4'h3:disp0=7'b0000110; 4'h4:disp0=7'b1001100; 4'h5:disp0=7'b0100100; 4'h6:disp0=7'b0100000; 4'h7:disp0=7'b0001111; 4'h8:disp0=7'b0000000; 4'h9:disp0=7'b0000100; default:disp0=7'b1111111; endcaseendendmodule第6章状态机序列检测器02Part2状态机设计举例2.2序列检测器例6.3设计一个序列检测器电路,检测输入的串行数据是否出现连续出现二进制110,如果检测到,发出提示信号。2状态机设计举例需求分析从状态机条件分析,序列检测器的输出和输入信号有关,是一个Mealy状态机。串行输入在每个时钟触发时输入一个二进制数,电路只有在三个时钟周期内连续收到的是“1-1-0”信号,才会发出提示信号。因此电路里存储的应有四种状态电路状态存储值状态编码S0000S1101S21110S3110112状态机设计举例需求分析2状态机设计举例状态参数与状态寄存器四个状态的参数定义语句如下:parameter[1:0]S0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;状态寄存器要与状态参数相一致,定义为2位寄存器,定义如下:reg[1:0]current_state,next_state;2状态机设计举例描述状态转换逻辑在Mealy状态机中特别需要描述条件输入对状态的影响,这里要把S_in写入敏感事件,并且用if语句体现S_in信号的对状态的决定作用。always@(S_inorcurrent_state)begin case(current_state) S0:if(S_in==1’b0)next_state=S0; else next_state=S1; S1:if(S_in==1’b0)next_state=S0; else next_state=S2; S2:if(S_in==1’b0)next_state=S3; else next_state=S2; S3:if(S_in==1’b0)next_state=S0; else next_state=S1; default:next_state=S0; endcaseend2状态机设计举例描述输出逻辑因为序列检测器是Mealy状态机,同样这个过程块也要把S_in写入敏感事件,并且用if语句体现S_in信号的对输出的决定作用。always@(S_inorcurrent_state)begin case(current_state) S0:Beef=1’b0; S1:Beef=1’b0; S2:Beef=(S_in==1’b0)?1’b1:1’b0; S3:Beef=1’b0; endcaseend2状态机设计举例Verilog完整代码moduleSeq_detector(clk,reset,S_in,Beef);inputclk,reset;inputS_in;//串行输入outputregBeef;//检测到110
parameter[1:0]S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;
reg[1:0]current_state,next_state;always@(S_inorcurrent_state)begin case(current_state) S0:if(S_in==1'b0) next_state=S0; else next_state=S1; S1:if(S_in==1'b0) next_state=S0; else next_state=S2; S2:if(S_in==1'b0) next_state=S3; else next_state=S2; S3:if(S_in==1'b0) next_state=S0; else next_state=S1; default:next_state=S0; endcaseend2状态机设计举例Verilog完整代码always@(posedgeclk)if(!reset)current_state<=S0;elsecurrent_state<=next_state;
always@(S_inorcurrent_state)begin case(current_state) S0:Beef=1'b0; S1:Beef=1'b0; S2:Beef=(S_in==1'b0)?1'b1:1'b0; S3:Beef=1'b0; endcaseend2状态机设计举例Verilog代码经Quartus编译综合后产生的状态机2状态机设计举例Verilog代码第6章状态机十字路口交通控制系统03Part2状态机设计举例2.3十字路口交通控制系统例6.4采用状态机方式设计例5.20中的十字路口交通控制系统。2状态机设计举例需求分析十字路口交通控制系统的信号灯状态可以分为S0~S3四个状态,S0:南北方向绿灯亮,东西方向黄灯亮。持续5秒。S1:南北方向绿灯亮,东西方向红灯亮。持续10秒。S2:南北方向黄灯亮,东西方向红灯亮。持续5秒。S3:南北方向红灯亮,东西方向绿灯亮。持续40秒。2状态机设计举例需求分析交通信号灯显然是一个不需要外部输入信号就能够自循环的Moore机,实现“S0→S1→S2→S3→S0”的状态转换。需要注意的是在实现状态转换时要考虑到每个状态持续的时间不同。2状态机设计举例状态参数与状态寄存器四个状态的参数定义语句如下:parameter[1:0]S0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;状态寄存器为2位寄存器,定义如下:reg[1:0]current_state,next_state;2状态机设计举例变量定义本设计中的交通信号灯并不是在每次时钟触发时实现状态转换,不能直接使用always@(posedgeclk)current_state<=next_state;每个状态持续的时长不同,S0持续5秒,S1持续10秒,S2持续5秒,S3持续40秒。因此需要通过一个计时变量进行约束。假定给定时钟clk频率为1Hz,计时变量最多需要计到40,因此定义一个5位的变量i给每个状态计时。reg[4:0]i;2状态机设计举例描述状态转换逻辑和输出逻辑先声明一个6位的变量t_light将路口的信号灯放在一起。这个例子中采用两段式状态机写法,将状态转换逻辑和输出逻辑放在一起。always@(current_state)begincase(current_state) S0:begin t_light=6'b001_010; next_state=(i==4)?S1:S0; end S1:begin t_light=6'b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 31197-2026无机化工产品杂质离子的测定离子色谱法
- 2025年GEO优化服务商综合排名TOP8:方案比较与优势深度分析
- 20xx北京公共安全开学第一课心得体会范文
- 2026年上海市黄浦区初三语文二模试卷及答案
- 2024年写字楼办公室租赁承包合同范本
- 2024年我是中学生了感觉真棒作文
- 大连铁路枢纽改造工程现场监理准备阶段作业指导书
- 农产品销售系统设计与实现
- 4.4 程序基础烧写
- 开封智慧健康职业学院 2026 年单独招生《职业适应性测试》面试模拟试题(普高生)
- 锂电池职业健康知识培训课件
- 《计算机视觉》课件-计算机视觉课件1210v1-5
- 2025年浙江省事业单位招聘考试综合类专业能力测试试卷(艺术设计类)模拟题库
- 2025年初级注册安全工程师(建筑施工安全)全真模拟试题及答案
- 邮政知识考试题及答案
- 《高等机构学(第2版)》课件-第1章-数学基础
- 2024-2025学年河南工业贸易职业学院单招《职业适应性测试》真题及答案详解(夺冠系列)
- 城管执法舆情培训课件
- 园林绿化项目文明作业及减少扰民保障措施
- 电子电路基本技能训练课件:电子焊接基本操作
- 医院融资计划书民营医院融资计划书
评论
0/150
提交评论