您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 《FPGA设计实验》考试题目
FPGA设计实验考试题目(开卷)要求:以下题目除特别说明外,均必须通过硬件测试(即下载至开发板验证),并编写好TestBench,通过ModelSim仿真,给出其源程序(关键语句必须解释语句含义)、功能仿真图、RTL图(主要图形说明其功能)或状态机图。其中现场操作50分。总分100分。1、设计一个多位数据比较器(测试时以3位为例)2、设计一个投票表决器(测试时以5人为例)3、将开发板上的50MHZ时钟分频为秒脉冲时钟信号modulefenp(clk_out,clk_in,reset);outputclk_out;inputclk_in;inputreset;reg[1:0]cnt;regclk_out;lways@(posedgeclk_inorposedgereset)beginif(reset)begincnt=0;clk_out=0;endelsebeginif(cnt==24999999)beginclk_out=!clk_out;cnt=0;endelsecnt=cnt+1;endendendmodule系统时钟为50MHz,用Verilog代码怎样将其分频至1/100smoduleS20(clk,rst,clk_out);inputclk,rst;outputclk_out;regclk_out;reg[4:0]count1;always@(posedgeclkornegedgerst)if(!rst)begincount1=0;clk_out=0;endelsebeginif(count120)begincount1=count1+1;if(count1=10)clk_out=1;elseclk_out=0;endelsecount1=0;endendmodule设计一个分频器,要求:占空比为50%的任意奇数次5分频电路。modulediv_5(clkin,clkout);inputclkin;outputclkout;reg[2:0]step1,step2;always@(posedgeclkin)begincase(step1)3'b000:step1=3'b001;3'b001:step1=3'b011;3'b011:step1=3'b100;3'b100:step1=3'b010;3'b010:step1=3'b000;default:step1=3'b000;endcaseendalways@(negedgeclkin)begincase(step2)3'b000:step2=3'b001;3'b001:step2=3'b011;3'b011:step2=3'b100;3'b100:step2=3'b010;3'b010:step2=3'b000;default:step2=3'b000;endcaseendassignclkout=step1[0]|step2[0];endmodule测试模块:`timescale1ps/1psmodulediv_5_vlg_tst();regeachvec;regclkin;wireclkout;div_5i1(.clkin(clkin),.clkout(clkout));initialbeginclkin=0;forever#5clkin=~clkin;endassignstep1=i1.step1[0];assignstep2=i1.step2[0];endmodule4、设计一个2.5次分频器。moduledivn5(CLK,PREL,NCLK);inputCLK;input[2:0]PREL;outputNCLK;wireNCLK;reg[2:0]COUNTER;regSIG_CLK;wireLCLK;regPCLK;assignLCLK=CLK^PCLKalways@(posedgeLCLK)beginif(COUNTER==3'b000)beginCOUNTER=PRELendelsebeginCOUNTER=COUNTER-1endendalways@(posedgeLCLK)beginif(COUNTER==3'b010)beginSIG_CLK=1'b1endelsebeginSIG_CLK=1'b0endendalways@(posedgeSIG_CLK)beginPCLK=~PCLKendassignNCLK=SIG_CLKendmodule5、在开发板上完成LPM嵌入式PLL的设计。要求设计一个分频系数为4/5、延时为0,占空比为25%的分频器。(提示:在ALTPLL参数设置界面的output标签页上,选择“usethisclock”,接着选择“Enteroutputclockparameters”,其中分子clockmultiplicationfactor设为4,分母clockdivisionfactor设为5,占空比clockdutycycle(%))6、在开发板上完成LPM嵌入式PLL的设计。要求设计一个倍频系数为2、延时为0,点空比为25%的倍频器。(提示:在ALTPLL参数设置界面的output标签页上,选择“usethisclock”,接着选择“Enteroutputclockparameters”,其中分子clockmultiplicationfactor设为2,分母clockdivisionfactor设为1,占空比clockdutycycle(%))7、在开发板上完成LPM嵌入式PLL的设计。要求输出3个频率分量,一个是2KHZ,一个是150MHZ,另一个是200MHZ。(提示:在ALTPLL参数设置界面的output标签页上,选择“usethisclock”,接着选择“Enteroutputclockfrequency”)8、参考教材P.143,定制一个ROM,其mif文件如图6-10所示(即定制一个字长为8,容量深度为128的ROM)。然后按教材P.146的要求,在QuartuiII9.0平台上进行功能仿真。9、设计一个3-8译码器moduledecoder_38(out,in);output[7:0]out;input[2:0]in;reg[7:0]out;always@(in)begincase(in)3'd0:out=8'b11111110;3'd1:out=8'b11111101;3'd2:out=8'b11111011;3'd3:out=8'b11110111;3'd4:out=8'b11101111;3'd5:out=8'b11011111;3'd6:out=8'b10111111;3'd7:out=8'b01111111;endcaseendendmodule10、设计一个8-3编码器11、设计一个时钟下降沿检测的、同步置1、异步高电平清零的D触发器12、试分别用行为描述风格和数据流描述风格各设计一个带使能端的的2选1数据选择器15、试分别用行为描述风格和数据流描述风格各设计一个带使能端的4选1数据选择器。13、设计一个双向门电路,当方向控制信号wr为高电平时,信号Y作为输出,值为输入信号a的值;当方向控制信号wr为低电平时,信号Y作为输入,输出信号b为信号Y的值,其它情况下,输出信号均为高阻态。14、设计一个通用二进制计数器,其功能有加/减计数、同步置位和异步低电平复位(测试时可以4位为例)。15、设计一个二进制码和格雷码相互转换的verilog程序(测试时可以4位为例)。16、设计一个同步可预置的、加法和减法计数器(测试时可以4位为例)。17、利用LPM定制一个4位十二进制加法和减法计数器。modulecounter4(load,clr,c,DOUT,clk,up_down,DIN);//定义模块inputload;//定义输入信号inputclk;//wireload;//定义线网型inputclr;//wireclr;//inputup_down;//wireup_down;//input[3:0]DIN;//定义4位二进制输入信号wire[3:0]DIN;//定义4位二进制线网型信号outputc;//定义输出信号regc;//定义寄存器类型信号output[3:0]DOUT;//wire[3:0]DOUT;reg[3:0]data_r;assignDOUT=data_r;always@(posedgeclkorposedgeclrorposedgeload)//检测clk,clr,load的上升沿beginif(clr)//当clr=1的时候进行下面的运行程序data_r=0;//将data_r置零elseif(load)//当load=1的时候进行下面的运行程序data_r=DIN;//将DIN的值赋给data_relsebeginif(up_down)//load=0的时候进行下面的操作beginif(data_r==4'b1111)begin///当data_r==4'b1111的时候进行下面的运行程序data_r=4'b0000;c=1;endelsebegin//当data_r不等于4'b1111的时候进行下面的运行程序data_r=data_r+1;//进行加法计数c=0;endendelsebeginif(data_r==4'b0000)begin//当data_r==4'b0000的时候进行下面的运行程序data_r=4'b1111;c=1;endelsebegin//当data_r不等于4'b1111的时候进行下面的运行程序data_r=data_r-1;//进行减法计数c=0;endendendendendmodule//结束模块18、设计一个Johnson计数器。Johnson计数器工作原理如下:(1)如果当前计数值的最高位为1,则执行最低位补0的左移操作;(2)如果当前计数值的最高位为0,则执行最低位补1的左移操作。以3位的Johnson计数器为例,其计数顺序依次为:000----001----011----111----110----100----000----modulejohnson(clk,clr,out);inputclk,clr;output[3:0]out;reg[3:0]out;always@(posedgeclkorposedgeclr)beginif(clr)out=4'h0;elsebeginout=out1;out[0]=~out[3];endendendmodule19、设计一个位宽为3位的通用移位寄存器。要求该寄存器能够实现如下功能:(1)异步低电平清零;(2)储存任意预置数;(3)左移或(右移)操作。20、设计一个位宽为4位的环形移位寄存器。要求该寄存器能够实现如下功能:(1)异步低电平清零;(2)储存任意预置数;(3)左移或(右移)操作。21、moduleShift_Register(CLK,CLR,S1,S0,LIN,RIN,D,C,B,A,QD,QC,QB,QA);22、inputCLK,CLR;23、inputS1,S0;24、inputLIN,RIN;25、inputD,C,B,A;26、outputQD,QC,QB,QA;27、regQD,QC,QB,QA;28、always@(posedgeCLK)29、begin30、if(CLR==1'b0)31、{QA,QB,QC,QD}=4'b0;32、else33、begin34、case({S1,S0})35、2'b00:{QA,QB,QC,QD}={QA,QB,QC,QD};36、2'b01:{QA,QB,QC,QD}={RIN,QA,QB,QC};37、2'b10:{QA,QB,QC,QD}={QB,QC,QD,LIN};38、2'b11:{QA,QB,QC,QD}={A,B,C,D};39、default:{QA,QB,QC,QD}={QA,QB,QC,QD};40、
本文标题:《FPGA设计实验》考试题目
链接地址:https://www.777doc.com/doc-2835924 .html