实验抽考题目 11汇总.docx
《实验抽考题目 11汇总.docx》由会员分享,可在线阅读,更多相关《实验抽考题目 11汇总.docx(10页珍藏版)》请在冰豆网上搜索。
实验抽考题目11汇总
FPGA设计实验抽测题目
要求:
以下题目除特别说明外,均必须给出其源程序(关键语句必须解释语句含义)、功能仿真图(解释波形含义)、RTL图(主要图形说明其功能)或状态机图,通过硬件测试(即下载至开发板验证),。
其中,4~9题参考第六章教材完成。
现场操作50分,实验报告50分,总分共100分。
1、设计一个多位数据比较器(测试时以3位为例)
实验二有
2、设计一个投票表决器(测试时以5人为例)
modulevoter5(pass,vote);
outputpass;
input[4:
0]vote;
reg[2:
0]sum;
integeri;
regpass;
always@(vote)
begin
sum=0;
for(i=0;i<=6;i=i+1)//for语句
if(vote[i])sum=sum+1;
if(sum>=3b011)pass=1;//若超过3人赞成,则pass=1,注意输入一撇
elsepass=0;
end
endmodule
3、将开发板上的50MHZ时钟分频为秒脉冲时钟信号
实验有略
4、设计一个分频器,要求:
占空比为50%的任意奇数次5分频电路。
课本p102例4.3一模一样!
!
!
5、设计一个2.5次分频器。
占空比为25%
6、在开发板上完成LPM嵌入式PLL的设计。
要求设计一个分频系数为4/5、延时为0,占空比为25%的分频器。
(提示:
在ALTPLL参数设置界面的output标签页上,选择“usethisclock”,接着选择“Enteroutputclockparameters”,其中分子clockmultiplicationfactor设为4,分母clockdivisionfactor设为5,占空比clockdutycycle(%))
7、在开发板上完成LPM嵌入式PLL的设计。
要求设计一个倍频系数为2、延时为0,点空比为25%的倍频器。
(提示:
在ALTPLL参数设置界面的output标签页上,选择“usethisclock”,接着选择“Enteroutputclockparameters”,其中分子clockmultiplicationfactor设为2,分母clockdivisionfactor设为1,占空比clockdutycycle(%))
8、在开发板上完成LPM嵌入式PLL的设计。
要求输出3个频率分量,一个是2KHZ,一个是150MHZ,另一个是200MHZ。
(提示:
在ALTPLL参数设置界面的output标签页上,选择“usethisclock”,接着选择“Enteroutputclockfrequency”)
9、参考教材P.143,定制一个ROM,其mif文件如图6-10所示(即定制一个字长为8,容量深度为128的ROM)。
然后按教材P.146的要求,在QuartuiII9.0平台上进行功能仿真。
10、设计一个3-8译码器
moduledecoder_38(out,in);
output[7:
0]out;
input[2:
0]in;
reg[7:
0]out;
always@(in)
begin
case(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;
endcase
end
endmodule
11、设计一个8-3编码器
moduleencoder8_3(din,out);
output[2:
0]out;
reg[2:
0]out;
input[7:
0]din;
always@(din)
begin
if(din[7])out<=3'b111;
elseif(din[6])out<=3'b110;
elseif(din[5])out<=3'b101;
elseif(din[4])out<=3'b100;
elseif(din[3])out<=3'b011;
elseif(din[2])out<=3'b010;
elseif(din[1])out<=3'b001;
elseif(din[0])out<=3'b000;
elseout<=3'b000;
end
endmodule
12、设计一个时钟下降沿检测的、同步置1、异步高电平清零的D触发器
带yi步清0、同步置1的D触发器
moduleDFF2(q,qn,d,clk,set,reset);
inputd,clk,set,reset;
outputq,qn;
regq,qn;
always@(negedgeclkorposedgerst)
begin
if(reset)begin
q<=0;qn<=1;//同步清0,高电平有效
end
elseif(set)begin
q<=1;qn<=0;//同步置1,高电平有效
end
elsebegin
q<=d;n<=~d;
end
end
endmodule
13、试分别用行为描述风格和数据流描述风格各设计一个带使能端的的2选1数据选择器
行为描述风格定义的2选1多路选择器
moduleMUX21_2(out,a,b,sel);
inputa,b,sel;
outputout;
regout;
always@(aorborsel)
begin
if(sel==0)out=a;//阻塞赋值
elseout=b;
end
endmodule
数据流风格定义的2选1多路选择器
moduleMUX21_1(out,a,b,sel);
inputa,b,sel;
outputout;
assignout=(sel==0)?
a:
b;
//持续赋值,如果sel为0,则out=a;否则out=b
endmodule
14、试分别用行为描述风格和数据流描述风格各设计一个带使能端的4选1数据选择器
用case语句描述的4选1数据选择器
modulemux4_1(out,in0,in1,in2,in3,sel);
outputout;
inputin0,in1,in2,in3;
input[1:
0]sel;
regout;
always@(in0orin1orin2orin3orsel)//敏感信号列表
case(sel)
2'b00:
out=in0;
2'b01:
out=in1;
2'b10:
out=in2;
2'b11:
out=in3;
default:
out=2'bx;
endcase
endmodule
用if-else语句描述的4选1MUX
modulemux_if(out,in0,in1,in2,in3,sel);
outputout;
inputin0,in1,in2,in3;
input[1:
0]sel;
regout;
always@(in0orin1orin2orin3orsel)
begin
if(sel==2'b00)out=in0;
elseif(sel==2'b01)out=in1;
elseif(sel==2'b10)out=in2;
elseout=in3;
end
endmodule
15、设计一个双向门电路,当方向控制信号wr为高电平时,信号Y作为输出,值为输入信号a的值;当方向控制信号wr为低电平时,信号Y作为输入,输出信号b为信号Y的值,其它情况下,输出信号均为高阻态。
16、设计一个通用二进制计数器,其功能有加/减计数、同步置位和异步低电平复位(测试时可以4位为例)。
moduleupdown_count(d,clk,clear,load,up_down,qd);
input[3:
0]d;
inputclk,clear,load;
inputup_down;
output[3:
0]qd;
reg[3:
0]cnt;
assignqd=cnt;
always@(posedgeclkornegedgeclear)
begin
if(!
clear)cnt=4'h00;//同步清0,低电平有效
elseif(load)cnt=d;//同步预置
elseif(up_down)cnt=cnt+1;//加法计数
elsecnt=cnt-1;//减法计数
end
endmodule
17、设计一个二进制码和格雷码相互转换的verilog程序(测试时可以4位为例)。
18、设计一个同步可预置的、加法和减法计数器(测试时可以4位为例)。
moduleupdown_count(d,clk,clear,load,up_down,qd);
input[3:
0]d;
inputclk,clear,load;
inputup_down;
output[3:
0]qd;
reg[3:
0]cnt;
assignqd=cnt;
always@(posedgeclk)
begin
if(!
clear)cnt=4'h00;//同步清0,低电平有效
elseif(load)cnt=d;//同步预置
elseif(up_down)cnt=cnt+1;//加法计数
elsecnt=cnt-1;//减法计数
end
endmodule
19、利用LPM定制一个4位十二进制加法和减法计数器。
课本p139例6.1!
!
!
20、设计一个Johnson计数器。
Johnson计数器工作原理如下:
(1)如果当前计数值的最高位为1,则执行最低位补0的左移操作;
(2)如果当前计数值的最高位为0,则执行最低位补1的左移操作。
以3位的Johnson计数器为例,其计数顺序依次为:
000----001----011----111----110----100----000----
3位Johnson计数器(异步复位)
modulejohnson(clk,clr,out);
inputclk,clr;
output[2:
0]out;
reg[2:
0]out;
always@(posedgeclkorposedgeclr)
begin
if(clr)out<=3'h0;
else
beginout<=out<<1;
out[0]<=~out[2];
end
end
endmodule
21、设计一个位宽为3位的通用移位寄存器。
要求该寄存器能够实现如下功能:
(1)异步低电平清零;
(2)储存任意预置数;(3)左移或(右移)操作。
8位移位寄存器
moduleshifter(din,clk,clr,load,data,dout);
inputdin,clk,clr,load;
input[2:
0]data;
output[2:
0]dout;
reg[2:
0]dout;
always@(posedgeclkornegedgeclr)
begin
if(!
clr)dout<=4'b0;//异步清0,低电平有效
elseif(!
load)
begin
dout<=data;
end
elsebegin
dout<=dout<<1;//输出信号左移一位
dout[0]<=din;//输入信号补充到输出信号的最低位
end
end
endmodule
同步预置功能的移位寄存器p62
22、设计一个位宽为4位的环形移位寄存器。
要求该寄存器能够实现如下功能:
(1)异步低电平清零;
(2)储存任意预置数;(3)左移或(右移)操作。
23、用循环语句设计一个4位乘法器
课本p66例3.22和3.23原题
24、用例化语句设计一个1位全加器,要求首先设计1位半加器。
课本p113和p114例5.9和5.10
25、设计一个具有三态功能的4位位宽的D锁存器,要求该锁存器具有同步高电平复位、同步使能和三态控制(三态输出控制端为高电平时,输出为高阻态)功能。
26、设计一个比较电路,当输入的8421BCD码大于5时输出1,否则输出0
27、设计一个时钟上升沿触发的JK触发器
输入J和K,输出q,qd,
28、设计一个1001序列检测器