《基于FPGA的现代数字系统设计》作业参考答案.ppt

上传人:b****2 文档编号:2638894 上传时间:2022-11-04 格式:PPT 页数:24 大小:325KB
下载 相关 举报
《基于FPGA的现代数字系统设计》作业参考答案.ppt_第1页
第1页 / 共24页
《基于FPGA的现代数字系统设计》作业参考答案.ppt_第2页
第2页 / 共24页
《基于FPGA的现代数字系统设计》作业参考答案.ppt_第3页
第3页 / 共24页
《基于FPGA的现代数字系统设计》作业参考答案.ppt_第4页
第4页 / 共24页
《基于FPGA的现代数字系统设计》作业参考答案.ppt_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

《基于FPGA的现代数字系统设计》作业参考答案.ppt

《《基于FPGA的现代数字系统设计》作业参考答案.ppt》由会员分享,可在线阅读,更多相关《《基于FPGA的现代数字系统设计》作业参考答案.ppt(24页珍藏版)》请在冰豆网上搜索。

《基于FPGA的现代数字系统设计》作业参考答案.ppt

作业答案作业答案3.3设A=4b1010,B=4b0011,C=1b1,则下式运算结果是什么?

(1)A0101

(2)A10101(3)A,B0,C101011(4)A&B0010(5)AB1001(6)AB03.5有一个模块名为my_module,其输入/输出端口情况如题图3.1所示,试写出模块VerilogHDL的描述框架,即模块的定义、端口罗列和端口定义等。

modulemy_modudle(AIN,BIN,CIN,CLK,ENABLE,RESETDATA_OUT)Input3:

0AIN;Input2:

0BIN;Input1:

0CIN;InputCLK,ENABLE,RESET;Output4:

0DATA_OUT;.作业答案作业答案3.6在下面的initial块中,根据每条语句的执行时刻,写出每个变量在仿真过程中和仿真结束时的值。

initialbeginA=1b0;B=1b1;C=2b10;D=4b1100;#10beginA=1b1;B=1b0;end#15beginC=#52b01;end#10beginD=#7A,B,C;endend作业答案作业答案3.6#0A=1b0,B=1b1,C=2b10,D=4b1100,#10A=1b1,B=1b0,C=2b10,D=4b1100,#30A=1b1,B=1b0,C=2b01,D=4b1100,#42A=1b1,B=1b0,C=2b01,D=4b1001.作业答案作业答案3.7定义一个深度为256,位宽为8比特的寄存器型数组,用for语句对该数组进行初始化,要求把所有的偶元素初始化为0,所有的奇元素初始化为1。

3.7.reg7:

0stage255:

0initialbeginfor(i=0;i256;i=i+2)stagei=0;for(i=1;i256;i=i+2)statei=1;end作业答案作业答案3.8设计一个移位函数,输入一个位宽是32比特的数data,和一个左移、右移的控制信号shift_contr1:

0,shift_contr1=1,data左移一位,shift_contr0=1,data右移一位,函数返回移位后的数值。

3.8function31:

0shiftinput31:

0data_in;input1:

0shift_contr;beginif(shift_contr1)shift=data_in1;endendfunction作业答案作业答案3.10定义一个任务,该任务能计算出一个八位变量的偶校验位作为该任务的输出,计算结束后,经过三个时钟周期将该校验位赋给任务的输出。

3.10taskparity(even_bit,odd_bit,input_bus);outputeven_bit,odd_bit;input7:

0input_bus;regeven_bit,odd_bit,a;beginodd_bit=input_bus;/产生奇校验位a=odd_bit;end;/产生偶校验位(posedgeclk)(posedgeclk)(posedgeclk)even_bit=a;endendtask作业答案作业答案3.12modulemux4(A,B,C,D,sel,data_sel);parameterwidth=8;inputwidth-1:

0A,B,C,D;input1:

0sel;outputwidth-1:

0data_sel;regwidth-1:

0data_sel;always(AorBorCorDorsel)begincase(sel)2b00:

data_sel=A;2b01:

data_sel=B;2b10:

data_sel=C;2b11:

data_sel=D;default:

$display(signalisinvalid);endcaseendendmodule作业答案作业答案3.12modulemux4(clk,rst,A,B,C,D,sel,data_sel);parameterwidth=8;inputwidth-1:

0A,B,C,D;input1:

0sel;inputclk,rst;outputwidth-1:

0data_sel;wirewidth-1:

0data_sel;assigndata_sel=sel1?

(sel0?

D:

C):

(sel0?

B:

A);endmodule作业答案作业答案作业答案作业答案设计一个序列检测器,用于检测串行输入的二进制序列,每当连续输入三个或三个以上的1时,序列检测器的输出为1,其它情况下输出为0。

(1)画出状态转移图。

(2)写出VerilogHDL程序(要求在程序中使用2个always语句)作业答案作业答案状态图:

s0:

初始状态,电路还未收到一个有效1s1:

收到一个1后的状态S2:

连续收到两个1后的状态s3:

连续收到三个1个后的状态作业答案作业答案modulefsm(clk,reset,ina,out);inputclk,ina;outputout;regout;parameters0=2b00,s1=2b01,s2=2b10,s3=2b11;reg0:

1state,next_state;always(posedgeclk)beginif(!

reset)state=s0;elsestate=next_state;endalways(stateorina)begincase(state)s0:

beginnext_state=(ina)?

s1:

s0;out=0;ends1:

beginnext_state=(ina)?

s2:

s0;out=0;ends2:

beginnext_state=(ina)?

s3:

s0;out=0;ends3:

beginnext_state=(ina)?

s3:

s0;out=1;endendcaseendendmodule作业答案作业答案作业:

下图是一个A/D采集系统,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:

控制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。

控制器(control)是一个有限状态机,完成对AD574的控制,和adram的写入操作。

adram是一个双口RAMIP核,在wren为1时允许写入数据。

A/D采集系统作业答案作业答案AD574逻辑控制真值表(X表示任意)AD574工作时序作业答案作业答案下面表列出了AD574的控制方式(X表示任意信号)和控制时序图(STATUS为高电平,FPGA等待A/D转换,STATUS为低电平,A/D转换完成,数据输出有效):

CECSRCK12_8A0工作状态0XXXX禁止100X1启动8位转换10101转换后数据输出有效作业答案作业答案回答问题:

1)试画出控制器Control模块的状态机的状态图。

2)地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对地址计数器模块(addrcnt)进行VerilogHDL描述。

3)根据问题1)的状态图,试对控制器Control模块进行VerilogHDL描述。

4)已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行顶层模块的VerilogHDL描述(顶层名设为ADC574)。

作业答案作业答案1)试画出控制器Control模块的状态机的状态图。

作业答案作业答案2)地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对该模块进行verilog描述。

modulecnt64(ClkInc,Cntclr,Wraddr);inputClkInc,Cntclr;output5:

0Wraddr;reg5:

0Wraddr;always(posedgeClkIncorposedgeCntclr)beginif(Cntclr)Wraddr=6d0;elseWraddr=Wraddr+1;endendmodule作业答案作业答案3)根据状态图,试对control进行Verilog描述.modulecontrol(CLK,STATUS,ADData,CS,CE,A0,RC,K12_8,ClkInc,rddata);inputCLK,STATUS;/时钟信号和AD转换状态信号输入input7:

0ADData;/转换数据输入outputCS,CE,A0,RC,K12_8;/AD574控制信号outputClkInc;/地址计数器时钟信号output7:

0rddata;/转换数据输出parameters0=0,s1=1,s2=2,s3=3,s4=4;reg2:

0st;reglock;regCS,CE,RC;作业答案作业答案assignK12_8=1b0;assignA0=1b1;assignClkInc=(lock=1b1)?

1:

0;assignrddata=(lock=1b1)?

ADData:

rddata;always(posedgeCLK)begincase(st)s0:

beginst=s1;RC=1b1;CE=1b0;CS=1b1;lock=1b0;ends1:

beginst=s2;RC=1b0;CE=1b1;CS=1b0;lock=1b0;end作业答案作业答案s2:

if(!

STATUS)st=s3;elsebeginst=s2;RC=1b1;CE=1b1;CS=1b0;lock=1b0;ends3:

beginst=s4;RC=1b1;CE=1b1;CS=1b0;lock=1b1;ends4:

beginst=s0;RC=1b1;CE=1b1;CS=1b0;lock=1b0;enddefault:

st=s0;endcaseendendmodule作业答案作业答案5)已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行Verilog顶层描述。

顶层名为ADC574.moduleADC574(CLK,STATUS,ADDATA,Cntclr,Rdaddr,CS,CE,A0,RC,K12_8,rddata);inputCLK,STATUS;/时钟信号和AD转换状态信号输入input7:

0ADDATA;/转换数据输入inputCntclr;/计数器清零信号input5:

0Rdaddr;/adram读数地址outputCS,CE,A0,RC,K12_8;/AD574控制信号output7:

0rddata;/adram读数据输出wireClkInc;wire5:

0Wraddr;wire7:

0r_data;wirewren;作业答案作业答案5)已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行Verilog顶层描述。

顶层名为ADC574.moduleADC574(CLK,STATUS,ADDATA,Cntclr,Rdaddr,CS,CE,A0,RC,K12_8,rddata);inputCLK,STATUS;/时钟信号和AD转换状态信号输入input7:

0ADDATA;/转换数据输入inputCntclr;/计数器清零信号input5:

0Rdaddr;/adram读数地址outputCS,CE,A0,RC,K12_8;/AD574控制信号output7:

0rddata;/adram读数据输出wireClkInc;wire5:

0Wraddr;wire7:

0r_data;wirewren;作业答案作业答案assignwren=1b1;controlu1(.CLK(CLK),.STATUS(STATUS),.ADDATA(ADDATA),.CS(CS),.CE(CE),.A0(A0),.RC(RC),.K12_8(K12_8),.ClkInc(ClkInc),.rddata(r_data);cnt64u2(.ClkInc(ClkInc),.Cntclr(Cntclr),.Wraddr(Wraddr);adramu3(.data(r_data),.wraddress(Wraddr),.rdaddress(Rdaddr),.wren(wren),.q(rddata);endmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1