EDA技术答案-中国大学慕课
第2章 Verilog HDL 语言基础
第2章 Verilog HDL 语言基础测验
1、这段程序描述的逻辑功能为: module Learn1_1(a,b,s,y); input a,b; input s; output y; wire d, e; assign d = a & s; assign e = b & (~s); assign y = d | e; endmodule
A、译码器
B、二选一数据选择器
C、四选一数据选择器
D、计数器
2、ADC0809作为一款8位、8通道逐次逼近型集成A/D转换器,工作时钟为TCP,针对某一通道A/D转换器完成一次转换的时间为( )。
A、8TCP
B、9TCP
C、10TCP
D、11TCP
3、已知时钟信号clkin的频率为100MHz的方波信号,下面程序中clkout的频率为( )。 module function(rst, clkin, clkout); input clkin, rst; output wire clkout; reg[2:0] m, n; reg clk1, clk2; assign clkout=clk1|clk2; always @(posedge clkin) begin if(!rst) begin clk1<=0; m<=0; end else begin if(m==4) m<=0; else m<=m+1; if(m<2) clk1<=1; else clk1<=0; end end always @(negedge clkin) begin if(!rst) begin clk2<=0; n=0; end else begin if(n==4) n<=0; else n<=n+1; if(n<2) clk2<=1; else clk2<=0; end end endmodule
A、10MHz
B、25MHz
C、20MHz
D、50MHz
4、已知时钟信号clkin的频率为100MHz的方波信号,下面程序中clkout信号的占空比为( )。 module function(rst,clkin, clkout); input clkin, rst; output wire clkout; reg[2:0] m, n; reg clk1, clk2; assign clkout=clk1|clk2; always @(posedge clkin) begin if(!rst) begin clk1<=0; m<=0; end else begin if(m==4) m<=0; else m<=m+1; if(m<2) clk1<=1; else clk1<=0; end end always @(negedge clkin) begin if(!rst) begin clk2<=0; n=0; end else begin if(n==4) n<=0; else n<=n+1; if(n<2) clk2<=1; else clk2<=0; end end endmodule
A、10%
B、20%
C、40%
D、50%
5、如果某一数据通信系统采用CRC校验方式,生成多项式g(x) =xxxx+xxx+1,接收到二进制比特序列为 1101111101(含CRC校验码)。则该生成多项式对应的二进制比特序列为( )。
A、11001
B、10110
C、10111
D、11011
6、如果某一数据通信系统采用CRC校验方式,生成多项式g(x) =xxxx+xxx+1,接收到二进制比特序列为 1101111101(含CRC校验码)。如果接收到的二进制比特序列长度正确,则发送端原始二进制比特序列的长度是( )位。
A、5
B、6
C、7
D、8
7、如果某一数据通信系统采用CRC校验方式,生成多项式g(x) =xxxx+xxx+1,接收到二进制比特序列为 1101111101(含CRC校验码)。如果已知接收到二进制序列中的信息码正确,下面关于校验码的说法正确的是( )。
A、校验码无差错
B、校验码有1位错误
C、校验码有2位错误
D、校验码有3位错误
第3章 FPGA开发软件QuartusII使用实例
第3章 FPGA开发软件QuartusII使用实例测验
1、DE2-70开发板使用的FPGA芯片类型是Altera公司的什么系列?()
A、Cyclone
B、Cyclone II
C、Cyclone III
D、Cyclone IV
2、以下不属于Cyclone II系列芯片内部的资源的是?()
A、可编程逻辑单元
B、可编程IO
C、嵌入式ADC
D、PLL
3、对于共阴极数码管,显示数字“7”对应的编码(顺序为abcdefg)为()。
A、7’b0001_111
B、7’b1110_000
C、7’b1111_000
D、7’b0001_111
4、74LS47七段显示译码器中优先级最高的输入信号是()
A、BI
B、LT
C、RBI
D、数据输入端DCBA
5、74LS160的计数条件是()
A、ET=0 EP=0
B、ET=0 EP=1
C、ET=1 EP=0
D、ET=1 EP=1
6、利用计数器将50M的系统时钟分频要得到4Hz的信号,则计数器的最大值应为()
A、6250001
B、6249999
C、6250000
D、以上都不对
7、对clk_1Hz模块例化正确的是()。
A、u3 clk_1Hz(.clk_50M(clk_50M),.rst(rst),.clk1Hz(clk1Hz));
B、clk_1Hz u3(.clk_50M(clk_50M),.rst(rst),.clk1Hz(clk1Hz));
C、u3 clk_1Hz(clk_50M(.clk_50M),rst(.rst),clk1Hz(.clk1Hz));
D、clk_1Hz u3 (clk_50M(.clk_50M),rst(.rst),clk1Hz(.clk1Hz));
第4章 嵌入式逻辑分析仪及Modelsim仿真验证
第4章 嵌入式逻辑分析仪及Modelsim仿真验证测验
1、以下程序中,clk_50M为50MHz输入时钟,则clk为多少Hz的方波?() always@(posedge clk_50M) begin if (cnt == 24999999) begin clk2_hz = 1'b1; cnt = 0; end else begin cnt = cnt + 1; clk2_hz = 1'b0; end end always@(posedge clk2_hz) clk =~ clk;
A、1
B、2
C、4
D、8
2、以下程序中,clk_50M为50MHz输入时钟,若想输出clk为2Hz的方波,则cnt的判断条件设置为多少?() always@(posedge clk_50M) begin if (cnt == ? ) begin clk2_hz = 1'b1; cnt = 0; end else begin cnt = cnt + 1; clk2_hz = 1'b0; end end always@(posedge clk2_hz) clk =~ clk;
A、24999999
B、12499999
C、25000000
D、125000000
3、在设计正弦信号发生器时,当时钟频率保持不变,增大相位累加字,输出正弦信号的频率将()
A、增大
B、减小
C、保持不变
D、不确定
4、在编写测试程序TestBench时,以下对仿真时间单位/时间精度定义错误的是()
A、`timescale 10ns/1ns
B、`timescale 10ns/10ns
C、`timescale 10ps/1ns
D、`timescale 1ns/100ps
5、在测试程序TestBench中,对于测试输入信号需要定义为哪种类型?()
A、wire
B、reg
C、都可以
D、不需要定义
6、在正弦信号发生器的实现中,下面这段程序实现的是地址累加功能,请回答f_set变量实现的功能是()。 always @ (posedge iCLK_50 or negedge rst) begin if (!rst) addr = 0; else addr=addr+ f_set; end
A、改变时钟频率
B、改变斜率
C、相位累加值
D、计数器加数值
7、SignalTap II设置中对于触发信号的触发模式可以设置为()
A、Falling Edge
B、Rising Edge
C、Low
D、High
8、下面关于嵌入式逻辑分析仪SignalTapII描述正确的是()
A、SignalTapII 不占FPGA的逻辑资源。
B、SignalTapII 占用FPGA的逻辑资源。
C、SignalTapII采集的信号与系统采样时钟无关。
D、A. SignalTapII显示的信号跟采样时钟的频率和采样深度的设置有关。
第5章 FPGA设计实例
第5章 FPGA设计实例测验
1、关于以下程序,下列说法中正确的是 module Learn10_2 (clk,rst_n,din,pos_clk,neg_clk) input clk,rst_n,din; output pos_clk,neg_clk; reg ctrl_this,ctrl_last; always@(posedge clk or negedge rst_n) begin if(!rst_n) begin ctrl_this <= 0; ctrl_last <= 0; end else begin ctrl_this <= din; ctrl_last <=ctrl_this end end assign pos_clk = ctrl_this&(!ctrl_last) endmodule
A、该程序的功能是上升沿检测
B、该程序是同步复位
C、pos_clk是一个长度为两个时钟周期的脉宽信号
D、该程序的功能是下降沿检测
2、关于以下程序,下列说法中正确的是 reg [7:0] CntDis; always@(posedge Clk_50M) begin if ( Cnt30 > 29) begin CntDis[7:4] <= 3; CntDis[3:0] <= Cnt30 - 30; end else if ( Cnt30 > 19) begin CntDis[7:4] <= 2; CntDis[3:0] <= Cnt30 - 20; end else if ( Cnt30 > 9) begin CntDis[7:4] <= 1; CntDis[3:0] <= Cnt30 - 10; end else CntDis <= Cnt30; end
A、该模块的功能是将十进制数转换为5421BCD码
B、改程序会生成锁存器
C、always 块内语句在时钟的下降沿处执行
D、当输入为26时,输出为0010_0110
3、在以下分频器程序中,系统频率clk50m为50MHz则: 分频得到的时钟频率为多少?分频得到的时钟占空比为多少?; always@(posedge clk50m) begin if (count8==7) begin count8<=0; clk_6mhz<=1; end else begin count8<=count8+1; clk_6mhz<=0; end end
A、7.15MHz 1/8
B、6.25MHz 1/4
C、6.25MHz 1/8
D、7.15MHz 1/4
4、关于以下分频器程序中,clk为系统时钟,则该分频器的分频数是多少?输出信号的占空比是多少? always@ (posedge clk) begin if (divider==M) begin carry<=1; divider<=P; end else begin divider<=divider+1; carry<=0; end end
A、1/M-P 1/M-P
B、1/M-P+1 1/M-P
C、1/M-P 1/M-P+1
D、1/M-P+1 1/M-P+1
5、下面是一个用状态机设计的自动售货机,one_dollar 代表投币一元,half_doller 代表投币五角。则下列说法正确的是 module machine(one_dollar, half_dollar, collect,half_out, dispense, reset,clk); parameter idle=2'b00, half=2'b01, one = 2'b10; input one_dollar, half_dollar, reset, clk; output collect, half_out, dispense; reg collect, half_out, dispense; reg[1:0] D; always @(posedge clk) begin if(reset) begin dispense=0; collect=0; half_out=0; D=idle; end else case (D) idle: if (half_dollar) begin dispense=0; collect=0; half_out=0; D=half; end else if(one_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else begin dispense=0; collect=0; half_out=0; D=idle; end half: if(half_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else if(one_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else begin dispense=0; collect=0; half_out=0; D=half; end one: if(half_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else if(one_dollar) begin dispense=1; collect=1; half_out=1; D=idle; end else begin dispense=0; collect=0; half_out=0; D=one; end default: begin dispense=0; collect=0; half_out=0; D=idle; end endcase end endmodule
A、饮料的售价为一元五角
B、该状态机是mealy型状态机
C、该状态机的输出只与当前状态有关
D、当投入两元钱后,找零五角,同时状态机跳转至idle状态
6、在以下程序中,Clk_50M为频率为50MHz的系统时钟,则下列说法中正确的有 reg Clk; reg [31:0] Cnt; always@(posedge Clk_50M or negedge Rst) begin if(!Rst) begin Cnt <= 1; Clk <= 1; end else begin if(Cnt >= 25000000) begin Cnt <= 1; Clk <= ~Clk; end else Cnt<= Cnt + 1; end end
A、该模块为同步复位
B、该模块的功能是分频器
C、若系统时钟频率为50MHz,则输出Clk的频率为2MHz
D、该程序为时序逻辑电路
7、关于以下测试程序,其说法正确的是: `timescale 1ns / 1ps module cout_tp; reg clk,reset; wire [7:0] out; count u0( .clk(clk), .reset(reset), .out(out) ); initial begin clk=0; reset=0; #4 reset=1; #4 reset=0; #100 reset=1; #4 reset=0; end initial begin forever #2 clk=~clk; end endmodule
A、该程序时间的基准单位是1ns,时间的精度是1ps
B、count 是模块名;u0是例化名
C、测试程序中,时钟的频率为500MHz
D、被测模块中clk和reset是输出信号
8、下列说法中,哪些是testbench的功能
A、检测被测程序是否含有不可综合的语法错误
B、产生模拟激励(波形)
C、将产生的激励加入到被测试模块
D、将输出响应与期望进行比较
9、以下程序为一个用状态机构成的交通灯,其中LEDR_H、LEDG_H、LEDY_H,为一个方向的红、绿、黄灯,LEDR_V、LEDG_V、LEDY_V,为另一个方向的红、绿、黄灯,Clk为频率为1Hz的时钟,则以下说法中正确的是 reg [1:0]state; always@(posedge Clk or negedge Rst) begin if(!Rst) begin LedR_H <= 0; LedG_H <= 0; LedR_V <= 0; LedG_V <= 0; LedY_H <= 0; LedY_V <= 0; end else begin case(state) S1: begin if(Cnt35<=30) begin LedR_H <= 1; LedG_H <= 0; LedY_H <= 0; LedR_V <= 0; LedG_V <= 1; LedY_V <= 0; end else state <= S3; end S2: begin if(Cnt35<=30) begin LedR_H <= 0; LedG_H <= 1; LedR_V <= 1; LedG_V <= 0; LedY_H <= 0; LedY_V <= 0; end else state <= S4; end S3: begin if(Cnt35>=30) begin LedR_H <= 1; LedG_H <= 0; LedR_V <= 0; LedG_V <= 0; LedY_H <= 0; LedY_V <= 1; end else state <= S2; end S4: begin if(Cnt35>=30) begin LedR_H <= 0; LedG_H <= 0; LedR_V <= 1; LedG_V <= 0; LedY_H <= 1; LedY_V <= 0; end else state <= S1; end Default: begin LedR_H <= 0; LedG_H <=gai 0; LedR_V <= 0; LedG_V <= 0; LedY_H <= 0; LedY_V <= 0; end endcase end end
A、该状态机是moore型
B、黄灯每次亮5秒
C、红灯每次亮35秒
D、绿灯每次亮35秒
第6章 基于FPGA的触摸屏弹球游戏设计
第6章 基于FPGA的触摸屏弹球游戏设计测验
1、阅读下列程序片段,判断当y_cnt = 350时,mesl值为( ) wire [1:0] msel; assign msel= (y_cnt<180) ? 2'b01 : (y_cnt>=180 && y_cnt<340) ? 2'b10: 2'b00;
A、2'b00
B、2'b01
C、2'b10
D、2'b11
2、下列代码的功能是( ) always@(posedge oTRIG or negedge iRST_n) begin if (!iRST_n) iDISPLAY_MODE = 2; else begin if (iREG_GESTURE == 8'h14) iDISPLAY_MODE = iDISPLAY_MODE +1; else if(iREG_GESTURE == 8'h1C) iDISPLAY_MODE = iDISPLAY_MODE -1; else iDISPLAY_MODE = iDISPLAY_MODE ; end end
A、根据信号改变背景模式
B、屏幕颜色输出
C、字符显示
D、挡板生成
3、下面这段代码实现了VGA行列扫描时的列计数器产生,在( )中填入正确的代码。其中h_max,v_max,分别为行列计数器到达最大值时的标志位。 always@(posedge iCLK or negedge iRSTN) if(!iRSTN) begin v_count <= 10'b0; oVGA_VS <= 1'b1; v_act <= 3'b0; end else begin if ( ) begin if ( ) v_count <= 10'b0; else v_count <= v_count + 10'b1;
A、v_max,h_max
B、v_min,h_min
C、h_max,v_max
D、h_max,h_max
4、已知 parameter参数型常量 charline_n = 32’h19085FFC, 以下哪个选项与其相等。
A、00011010000010000101111111111100
B、00111001000010000101111111111100
C、00011001000010000101111111111100
D、00011001000010000100111111111100
5、若parameter CHAR_START_X , CHAR_X , CHAR_START_Y , CHAR_Y ; 为参数型常量定义字符显示的起始坐标和字符的长度和宽度,下列哪个选项所表示的区域在是字符表示区域( )。
A、A.(iVGA_Y>=CHAR_START_Y)&&(iVGA_Y<=(CHAR_START_Y+CHAR_Y))&&(iVGA_X>=CHAR_START_X) && (iVGA_X<=(CHAR_START_X + CHAR_X))
B、B.(iVGA_Y<=CHAR_START_Y)||(iVGA_Y>=(CHAR_START_Y+CHAR_Y))||(iVGA_X<=CHAR_START_X) && (iVGA_X>=(CHAR_START_X + CHAR_X))
C、C.(iVGA_Y>=CHAR_START_Y)&&(iVGA_Y<=(CHAR_START_Y+CHAR_Y-1))&&(iVGA_X>=CHAR_START_X) && (iVGA_X<=(CHAR_START_X + CHAR_X-1))
D、D.(iVGA_Y<=CHAR_START_Y)||(iVGA_Y>=(CHAR_START_Y+CHAR_Y-1))||(iVGA_X<=CHAR_START_X) || (iVGA_X>=(CHAR_START_X + CHAR_X-1))
6、X <= (X==11'b0) ? ( (Ball_X < block_X2-20) ? ( ~{7'b0000000,X_Step}+11'b1 ) : ({7'b0000000,X_Step}) ):X; 此段代码中,当X==11'b0,Ball_X < block_X2-20时,小球将如何运动?
A、左移
B、右移
C、保持不动
D、上下移动
7、当flag==1001时,小球处在哪个位置?
A、最左 最上
B、最左 最下
C、最右 最下
D、最右 最上
8、理解下面这段程序,指出DY_time的用途是什么? parameter DY_time =1000; always@(current_state or iTRIG or DY_cnt) begin case( current_state ) S0: begin DY1 = 0; if (iTRIG) begin next_state = S1; end else next_state = S0; end S1: begin if (DY_cnt <= DY_time) begin next_state = S1; DY1 = 1; end else begin next_state = S2; DY1 = 0; end end S2: begin DY1 = 0; next_state = S0; end default: begin next_state = S0; end endcase end
A、计数器的值
B、时间阈值
C、单稳态触发器的暂态时间
D、触发器的定时时间
9、在下面弹球生成模块的代码中 “Y <= ((Ball_Y == Ball_Y_Center)&&(Y==10'b0))?{6'b000000,Y_Step}:Y;”实现的是什么功能? always@(posedge clk_in or negedge rst_n) begin if (!rst_n) begin Ball_Y <= Ball_Y_Center; Y <=0; flag[3:2] <= 2'b00; end else begin if((Ball_Y+Ball_S >= 390 )&& (Ball_X > block_X1 )&& (Ball_X < block_X2)) begin Y <= ~{6'b000000,Y_Step}+10'b1; flag[3:2] <= 2'b01; end else if (Ball_Y+Ball_S >= Ball_Y_Max)begin Y <= 0; flag[3:2] <= 2'b11; end else begin if (Ball_Y-Ball_S <= Ball_Y_Min) begin Y <= {6'b000000,Y_Step}; flag[3:2] <= 2'b10;end else begin Y <= ((Ball_Y == Ball_Y_Center)&&(Y==10'b0))?{6'b000000,Y_Step}:Y; end end Ball_Y <= Ball_Y + Y; end end
A、判断如果球处于中间位置时,让球往上运动。
B、判断如果球处于中间位置时,让球往下运动。
C、判断如果球处于中间位置时,让球动起来的初始操作。
D、判断如果球处于中间位置时,保持不动。
10、下述代码的复位方式为( ) always@(posedge iCLK or negedge iRST_n) begin if(!RST_n) current_state <= S0; else current_state <= next_state; end
A、同步复位
B、异步复位
C、高电平复位
D、下降沿复位
第1章 绪论
第1章 EDA技术概述单元测验
1、广义的EDA技术指的是什么
A、电子仿真技术。
B、PCB技术。
C、电子设计自动化技术。
D、软件设计技术。
2、下面关于FPGA与CPLD的描述正确的是( )
A、FPAG是SRAM工艺,掉电后信息丢失,因此必须外加专用配置芯片,而CPLD为Flash工艺,掉电信息不丢失,无需配置芯片。
B、CPLD的安全性比FPGA高。
C、FPGA的集成度比CPLD低。
D、一般而言,FPGA的内部资源更为丰富,能够实现更为复杂的逻辑功能。
3、下面关于可编程数字逻辑设计说法正确的是( )
A、现代数字电子系统一般采用自顶而下的设计方法。
B、基于EDA技术的设计具有自主知识产权。
C、现代EDA设计电子系统相比于传统方法的设计效率更高。
D、现代EDA设计技术的可移植性强。
4、FPGA相比于CPLD优点是( )
A、FPGA的集成度相比CPLD更高。
B、FPGA相比于CPLD更适合完成复杂的时序逻辑设计。
C、FPGA相比于CPLD更适合完成组合逻辑设计。
D、FPGA的保密性更好。
5、下面哪些是FPGA的配置方式( )
A、主动串行配置。
B、JTAG配置。
C、SRAM配置。
D、被动串行配置。
6、下面哪些是FPGA的配置芯片( )
A、EPCS16
B、EPC4
C、EPCS4
D、单片机
第2章 Verilog HDL 语言基础测验
1、这段程序描述的逻辑功能为: module Learn1_1(a,b,s,y); input a,b; input s; output y; wire d, e; assign d = a & s; assign e = b & (~s); assign y = d | e; endmodule
A、译码器
B、二选一数据选择器
C、四选一数据选择器
D、计数器
2、ADC0809作为一款8位、8通道逐次逼近型集成A/D转换器,工作时钟为TCP,针对某一通道A/D转换器完成一次转换的时间为( )。
A、8TCP
B、9TCP
C、10TCP
D、11TCP
3、已知时钟信号clkin的频率为100MHz的方波信号,下面程序中clkout的频率为( )。 module function(rst, clkin, clkout); input clkin, rst; output wire clkout; reg[2:0] m, n; reg clk1, clk2; assign clkout=clk1|clk2; always @(posedge clkin) begin if(!rst) begin clk1<=0; m<=0; end else begin if(m==4) m<=0; else m<=m+1; if(m<2) clk1<=1; else clk1<=0; end end always @(negedge clkin) begin if(!rst) begin clk2<=0; n=0; end else begin if(n==4) n<=0; else n<=n+1; if(n<2) clk2<=1; else clk2<=0; end end endmodule
A、10MHz
B、25MHz
C、20MHz
D、50MHz
4、已知时钟信号clkin的频率为100MHz的方波信号,下面程序中clkout信号的占空比为( )。 module function(rst,clkin, clkout); input clkin, rst; output wire clkout; reg[2:0] m, n; reg clk1, clk2; assign clkout=clk1|clk2; always @(posedge clkin) begin if(!rst) begin clk1<=0; m<=0; end else begin if(m==4) m<=0; else m<=m+1; if(m<2) clk1<=1; else clk1<=0; end end always @(negedge clkin) begin if(!rst) begin clk2<=0; n=0; end else begin if(n==4) n<=0; else n<=n+1; if(n<2) clk2<=1; else clk2<=0; end end endmodule
A、10%
B、20%
C、40%
D、50%
5、如果某一数据通信系统采用CRC校验方式,生成多项式g(x) =xxxx+xxx+1,接收到二进制比特序列为 1101111101(含CRC校验码)。则该生成多项式对应的二进制比特序列为( )。
A、11001
B、10110
C、10111
D、11011
6、如果某一数据通信系统采用CRC校验方式,生成多项式g(x) =xxxx+xxx+1,接收到二进制比特序列为 1101111101(含CRC校验码)。如果接收到的二进制比特序列长度正确,则发送端原始二进制比特序列的长度是( )位。
A、5
B、6
C、7
D、8
7、如果某一数据通信系统采用CRC校验方式,生成多项式g(x) =xxxx+xxx+1,接收到二进制比特序列为 1101111101(含CRC校验码)。如果已知接收到二进制序列中的信息码正确,下面关于校验码的说法正确的是( )。
A、校验码无差错
B、校验码有1位错误
C、校验码有2位错误
D、校验码有3位错误
第3章 FPGA开发软件QuartusII使用实例
第3章 FPGA开发软件QuartusII使用实例测验
1、DE2-70开发板使用的FPGA芯片类型是Altera公司的什么系列?()
A、Cyclone
B、Cyclone II
C、Cyclone III
D、Cyclone IV
2、以下不属于Cyclone II系列芯片内部的资源的是?()
A、可编程逻辑单元
B、可编程IO
C、嵌入式ADC
D、PLL
3、对于共阴极数码管,显示数字“7”对应的编码(顺序为abcdefg)为()。
A、7’b0001_111
B、7’b1110_000
C、7’b1111_000
D、7’b0001_111
4、74LS47七段显示译码器中优先级最高的输入信号是()
A、BI
B、LT
C、RBI
D、数据输入端DCBA
5、74LS160的计数条件是()
A、ET=0 EP=0
B、ET=0 EP=1
C、ET=1 EP=0
D、ET=1 EP=1
6、利用计数器将50M的系统时钟分频要得到4Hz的信号,则计数器的最大值应为()
A、6250001
B、6249999
C、6250000
D、以上都不对
7、对clk_1Hz模块例化正确的是()。
A、u3 clk_1Hz(.clk_50M(clk_50M),.rst(rst),.clk1Hz(clk1Hz));
B、clk_1Hz u3(.clk_50M(clk_50M),.rst(rst),.clk1Hz(clk1Hz));
C、u3 clk_1Hz(clk_50M(.clk_50M),rst(.rst),clk1Hz(.clk1Hz));
D、clk_1Hz u3 (clk_50M(.clk_50M),rst(.rst),clk1Hz(.clk1Hz));
第4章 嵌入式逻辑分析仪及Modelsim仿真验证
第4章 嵌入式逻辑分析仪及Modelsim仿真验证测验
1、以下程序中,clk_50M为50MHz输入时钟,则clk为多少Hz的方波?() always@(posedge clk_50M) begin if (cnt == 24999999) begin clk2_hz = 1'b1; cnt = 0; end else begin cnt = cnt + 1; clk2_hz = 1'b0; end end always@(posedge clk2_hz) clk =~ clk;
A、1
B、2
C、4
D、8
2、以下程序中,clk_50M为50MHz输入时钟,若想输出clk为2Hz的方波,则cnt的判断条件设置为多少?() always@(posedge clk_50M) begin if (cnt == ? ) begin clk2_hz = 1'b1; cnt = 0; end else begin cnt = cnt + 1; clk2_hz = 1'b0; end end always@(posedge clk2_hz) clk =~ clk;
A、24999999
B、12499999
C、25000000
D、125000000
3、在设计正弦信号发生器时,当时钟频率保持不变,增大相位累加字,输出正弦信号的频率将()
A、增大
B、减小
C、保持不变
D、不确定
4、在编写测试程序TestBench时,以下对仿真时间单位/时间精度定义错误的是()
A、`timescale 10ns/1ns
B、`timescale 10ns/10ns
C、`timescale 10ps/1ns
D、`timescale 1ns/100ps
5、在测试程序TestBench中,对于测试输入信号需要定义为哪种类型?()
A、wire
B、reg
C、都可以
D、不需要定义
6、在正弦信号发生器的实现中,下面这段程序实现的是地址累加功能,请回答f_set变量实现的功能是()。 always @ (posedge iCLK_50 or negedge rst) begin if (!rst) addr = 0; else addr=addr+ f_set; end
A、改变时钟频率
B、改变斜率
C、相位累加值
D、计数器加数值
7、SignalTap II设置中对于触发信号的触发模式可以设置为()
A、Falling Edge
B、Rising Edge
C、Low
D、High
8、下面关于嵌入式逻辑分析仪SignalTapII描述正确的是()
A、SignalTapII 不占FPGA的逻辑资源。
B、SignalTapII 占用FPGA的逻辑资源。
C、SignalTapII采集的信号与系统采样时钟无关。
D、A. SignalTapII显示的信号跟采样时钟的频率和采样深度的设置有关。
第5章 FPGA设计实例
第5章 FPGA设计实例测验
1、关于以下程序,下列说法中正确的是 module Learn10_2 (clk,rst_n,din,pos_clk,neg_clk) input clk,rst_n,din; output pos_clk,neg_clk; reg ctrl_this,ctrl_last; always@(posedge clk or negedge rst_n) begin if(!rst_n) begin ctrl_this <= 0; ctrl_last <= 0; end else begin ctrl_this <= din; ctrl_last <=ctrl_this end end assign pos_clk = ctrl_this&(!ctrl_last) endmodule
A、该程序的功能是上升沿检测
B、该程序是同步复位
C、pos_clk是一个长度为两个时钟周期的脉宽信号
D、该程序的功能是下降沿检测
2、关于以下程序,下列说法中正确的是 reg [7:0] CntDis; always@(posedge Clk_50M) begin if ( Cnt30 > 29) begin CntDis[7:4] <= 3; CntDis[3:0] <= Cnt30 - 30; end else if ( Cnt30 > 19) begin CntDis[7:4] <= 2; CntDis[3:0] <= Cnt30 - 20; end else if ( Cnt30 > 9) begin CntDis[7:4] <= 1; CntDis[3:0] <= Cnt30 - 10; end else CntDis <= Cnt30; end
A、该模块的功能是将十进制数转换为5421BCD码
B、改程序会生成锁存器
C、always 块内语句在时钟的下降沿处执行
D、当输入为26时,输出为0010_0110
3、在以下分频器程序中,系统频率clk50m为50MHz则: 分频得到的时钟频率为多少?分频得到的时钟占空比为多少?; always@(posedge clk50m) begin if (count8==7) begin count8<=0; clk_6mhz<=1; end else begin count8<=count8+1; clk_6mhz<=0; end end
A、7.15MHz 1/8
B、6.25MHz 1/4
C、6.25MHz 1/8
D、7.15MHz 1/4
4、关于以下分频器程序中,clk为系统时钟,则该分频器的分频数是多少?输出信号的占空比是多少? always@ (posedge clk) begin if (divider==M) begin carry<=1; divider<=P; end else begin divider<=divider+1; carry<=0; end end
A、1/M-P 1/M-P
B、1/M-P+1 1/M-P
C、1/M-P 1/M-P+1
D、1/M-P+1 1/M-P+1
5、下面是一个用状态机设计的自动售货机,one_dollar 代表投币一元,half_doller 代表投币五角。则下列说法正确的是 module machine(one_dollar, half_dollar, collect,half_out, dispense, reset,clk); parameter idle=2'b00, half=2'b01, one = 2'b10; input one_dollar, half_dollar, reset, clk; output collect, half_out, dispense; reg collect, half_out, dispense; reg[1:0] D; always @(posedge clk) begin if(reset) begin dispense=0; collect=0; half_out=0; D=idle; end else case (D) idle: if (half_dollar) begin dispense=0; collect=0; half_out=0; D=half; end else if(one_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else begin dispense=0; collect=0; half_out=0; D=idle; end half: if(half_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else if(one_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else begin dispense=0; collect=0; half_out=0; D=half; end one: if(half_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else if(one_dollar) begin dispense=1; collect=1; half_out=1; D=idle; end else begin dispense=0; collect=0; half_out=0; D=one; end default: begin dispense=0; collect=0; half_out=0; D=idle; end endcase end endmodule
A、饮料的售价为一元五角
B、该状态机是mealy型状态机
C、该状态机的输出只与当前状态有关
D、当投入两元钱后,找零五角,同时状态机跳转至idle状态
6、在以下程序中,Clk_50M为频率为50MHz的系统时钟,则下列说法中正确的有 reg Clk; reg [31:0] Cnt; always@(posedge Clk_50M or negedge Rst) begin if(!Rst) begin Cnt <= 1; Clk <= 1; end else begin if(Cnt >= 25000000) begin Cnt <= 1; Clk <= ~Clk; end else Cnt<= Cnt + 1; end end
A、该模块为同步复位
B、该模块的功能是分频器
C、若系统时钟频率为50MHz,则输出Clk的频率为2MHz
D、该程序为时序逻辑电路
7、关于以下测试程序,其说法正确的是: `timescale 1ns / 1ps module cout_tp; reg clk,reset; wire [7:0] out; count u0( .clk(clk), .reset(reset), .out(out) ); initial begin clk=0; reset=0; #4 reset=1; #4 reset=0; #100 reset=1; #4 reset=0; end initial begin forever #2 clk=~clk; end endmodule
A、该程序时间的基准单位是1ns,时间的精度是1ps
B、count 是模块名;u0是例化名
C、测试程序中,时钟的频率为500MHz
D、被测模块中clk和reset是输出信号
8、下列说法中,哪些是testbench的功能
A、检测被测程序是否含有不可综合的语法错误
B、产生模拟激励(波形)
C、将产生的激励加入到被测试模块
D、将输出响应与期望进行比较
9、以下程序为一个用状态机构成的交通灯,其中LEDR_H、LEDG_H、LEDY_H,为一个方向的红、绿、黄灯,LEDR_V、LEDG_V、LEDY_V,为另一个方向的红、绿、黄灯,Clk为频率为1Hz的时钟,则以下说法中正确的是 reg [1:0]state; always@(posedge Clk or negedge Rst) begin if(!Rst) begin LedR_H <= 0; LedG_H <= 0; LedR_V <= 0; LedG_V <= 0; LedY_H <= 0; LedY_V <= 0; end else begin case(state) S1: begin if(Cnt35<=30) begin LedR_H <= 1; LedG_H <= 0; LedY_H <= 0; LedR_V <= 0; LedG_V <= 1; LedY_V <= 0; end else state <= S3; end S2: begin if(Cnt35<=30) begin LedR_H <= 0; LedG_H <= 1; LedR_V <= 1; LedG_V <= 0; LedY_H <= 0; LedY_V <= 0; end else state <= S4; end S3: begin if(Cnt35>=30) begin LedR_H <= 1; LedG_H <= 0; LedR_V <= 0; LedG_V <= 0; LedY_H <= 0; LedY_V <= 1; end else state <= S2; end S4: begin if(Cnt35>=30) begin LedR_H <= 0; LedG_H <= 0; LedR_V <= 1; LedG_V <= 0; LedY_H <= 1; LedY_V <= 0; end else state <= S1; end Default: begin LedR_H <= 0; LedG_H <=gai 0; LedR_V <= 0; LedG_V <= 0; LedY_H <= 0; LedY_V <= 0; end endcase end end
A、该状态机是moore型
B、黄灯每次亮5秒
C、红灯每次亮35秒
D、绿灯每次亮35秒
第6章 基于FPGA的触摸屏弹球游戏设计
第6章 基于FPGA的触摸屏弹球游戏设计测验
1、阅读下列程序片段,判断当y_cnt = 350时,mesl值为( ) wire [1:0] msel; assign msel= (y_cnt<180) ? 2'b01 : (y_cnt>=180 && y_cnt<340) ? 2'b10: 2'b00;
A、2'b00
B、2'b01
C、2'b10
D、2'b11
2、下列代码的功能是( ) always@(posedge oTRIG or negedge iRST_n) begin if (!iRST_n) iDISPLAY_MODE = 2; else begin if (iREG_GESTURE == 8'h14) iDISPLAY_MODE = iDISPLAY_MODE +1; else if(iREG_GESTURE == 8'h1C) iDISPLAY_MODE = iDISPLAY_MODE -1; else iDISPLAY_MODE = iDISPLAY_MODE ; end end
A、根据信号改变背景模式
B、屏幕颜色输出
C、字符显示
D、挡板生成
3、下面这段代码实现了VGA行列扫描时的列计数器产生,在( )中填入正确的代码。其中h_max,v_max,分别为行列计数器到达最大值时的标志位。 always@(posedge iCLK or negedge iRSTN) if(!iRSTN) begin v_count <= 10'b0; oVGA_VS <= 1'b1; v_act <= 3'b0; end else begin if ( ) begin if ( ) v_count <= 10'b0; else v_count <= v_count + 10'b1;
A、v_max,h_max
B、v_min,h_min
C、h_max,v_max
D、h_max,h_max
4、已知 parameter参数型常量 charline_n = 32’h19085FFC, 以下哪个选项与其相等。
A、00011010000010000101111111111100
B、00111001000010000101111111111100
C、00011001000010000101111111111100
D、00011001000010000100111111111100
5、若parameter CHAR_START_X , CHAR_X , CHAR_START_Y , CHAR_Y ; 为参数型常量定义字符显示的起始坐标和字符的长度和宽度,下列哪个选项所表示的区域在是字符表示区域( )。
A、A.(iVGA_Y>=CHAR_START_Y)&&(iVGA_Y<=(CHAR_START_Y+CHAR_Y))&&(iVGA_X>=CHAR_START_X) && (iVGA_X<=(CHAR_START_X + CHAR_X))
B、B.(iVGA_Y<=CHAR_START_Y)||(iVGA_Y>=(CHAR_START_Y+CHAR_Y))||(iVGA_X<=CHAR_START_X) && (iVGA_X>=(CHAR_START_X + CHAR_X))
C、C.(iVGA_Y>=CHAR_START_Y)&&(iVGA_Y<=(CHAR_START_Y+CHAR_Y-1))&&(iVGA_X>=CHAR_START_X) && (iVGA_X<=(CHAR_START_X + CHAR_X-1))
D、D.(iVGA_Y<=CHAR_START_Y)||(iVGA_Y>=(CHAR_START_Y+CHAR_Y-1))||(iVGA_X<=CHAR_START_X) || (iVGA_X>=(CHAR_START_X + CHAR_X-1))
6、X <= (X==11'b0) ? ( (Ball_X < block_X2-20) ? ( ~{7'b0000000,X_Step}+11'b1 ) : ({7'b0000000,X_Step}) ):X; 此段代码中,当X==11'b0,Ball_X < block_X2-20时,小球将如何运动?
A、左移
B、右移
C、保持不动
D、上下移动
7、当flag==1001时,小球处在哪个位置?
A、最左 最上
B、最左 最下
C、最右 最下
D、最右 最上
8、理解下面这段程序,指出DY_time的用途是什么? parameter DY_time =1000; always@(current_state or iTRIG or DY_cnt) begin case( current_state ) S0: begin DY1 = 0; if (iTRIG) begin next_state = S1; end else next_state = S0; end S1: begin if (DY_cnt <= DY_time) begin next_state = S1; DY1 = 1; end else begin next_state = S2; DY1 = 0; end end S2: begin DY1 = 0; next_state = S0; end default: begin next_state = S0; end endcase end
A、计数器的值
B、时间阈值
C、单稳态触发器的暂态时间
D、触发器的定时时间
9、在下面弹球生成模块的代码中 “Y <= ((Ball_Y == Ball_Y_Center)&&(Y==10'b0))?{6'b000000,Y_Step}:Y;”实现的是什么功能? always@(posedge clk_in or negedge rst_n) begin if (!rst_n) begin Ball_Y <= Ball_Y_Center; Y <=0; flag[3:2] <= 2'b00; end else begin if((Ball_Y+Ball_S >= 390 )&& (Ball_X > block_X1 )&& (Ball_X < block_X2)) begin Y <= ~{6'b000000,Y_Step}+10'b1; flag[3:2] <= 2'b01; end else if (Ball_Y+Ball_S >= Ball_Y_Max)begin Y <= 0; flag[3:2] <= 2'b11; end else begin if (Ball_Y-Ball_S <= Ball_Y_Min) begin Y <= {6'b000000,Y_Step}; flag[3:2] <= 2'b10;end else begin Y <= ((Ball_Y == Ball_Y_Center)&&(Y==10'b0))?{6'b000000,Y_Step}:Y; end end Ball_Y <= Ball_Y + Y; end end
A、判断如果球处于中间位置时,让球往上运动。
B、判断如果球处于中间位置时,让球往下运动。
C、判断如果球处于中间位置时,让球动起来的初始操作。
D、判断如果球处于中间位置时,保持不动。
10、下述代码的复位方式为( ) always@(posedge iCLK or negedge iRST_n) begin if(!RST_n) current_state <= S0; else current_state <= next_state; end
A、同步复位
B、异步复位
C、高电平复位
D、下降沿复位
第1章 绪论
第1章 EDA技术概述单元测验
1、广义的EDA技术指的是什么
A、电子仿真技术。
B、PCB技术。
C、电子设计自动化技术。
D、软件设计技术。
2、下面关于FPGA与CPLD的描述正确的是( )
A、FPAG是SRAM工艺,掉电后信息丢失,因此必须外加专用配置芯片,而CPLD为Flash工艺,掉电信息不丢失,无需配置芯片。
B、CPLD的安全性比FPGA高。
C、FPGA的集成度比CPLD低。
D、一般而言,FPGA的内部资源更为丰富,能够实现更为复杂的逻辑功能。
3、下面关于可编程数字逻辑设计说法正确的是( )
A、现代数字电子系统一般采用自顶而下的设计方法。
B、基于EDA技术的设计具有自主知识产权。
C、现代EDA设计电子系统相比于传统方法的设计效率更高。
D、现代EDA设计技术的可移植性强。
4、FPGA相比于CPLD优点是( )
A、FPGA的集成度相比CPLD更高。
B、FPGA相比于CPLD更适合完成复杂的时序逻辑设计。
C、FPGA相比于CPLD更适合完成组合逻辑设计。
D、FPGA的保密性更好。
5、下面哪些是FPGA的配置方式( )
A、主动串行配置。
B、JTAG配置。
C、SRAM配置。
D、被动串行配置。
6、下面哪些是FPGA的配置芯片( )
A、EPCS16
B、EPC4
C、EPCS4
D、单片机