FPGA作业参考答案 刘桂华.ppt_第1页
FPGA作业参考答案 刘桂华.ppt_第2页
FPGA作业参考答案 刘桂华.ppt_第3页
FPGA作业参考答案 刘桂华.ppt_第4页
FPGA作业参考答案 刘桂华.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

A,1,3.3设A=4b1010,B=4b0011,C=1b1,则下式运算结果是什么?(1)A0101(2)A10101(3)A,B0,C101011(4)AInput2:0BIN;Input1:0CIN;InputCLK,ENABLE,RESET;Output4:0DATA_OUT;.,A,3,3.6在下面的initial块中,根据每条语句的执行时刻,写出每个变量在仿真过程中和仿真结束时的值。initialbeginA=1b0;B=1b1;C=2b10;D=4b1100;#10beginA=1b1;B=1b0;end#15beginC=#52b01;end#10beginD=#7A,B,C;endend,A,4,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.,A,5,3.7定义一个深度为256,位宽为8比特的寄存器型数组,用for语句对该数组进行初始化,要求把所有的偶元素初始化为0,所有的奇元素初始化为1。3.7.reg7:0stage255:0initialbeginfor(i=0;i256;i=i+2)stagei=0;for(i=1;i1;endendfunction,A,7,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,A,8,3.12modulemux4(A,B,C,D,sel,data_sel);parameterwidth=8;inputwidth-1:0A,B,C,D;input1:0sel;outputwidth-1:0data_sel;reg3: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,A,9,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;wire3:0data_sel;assigndata_sel=sel1?(sel0?D:C):(sel0?B:A);endmodule,A,10,设计一个序列检测器,用于检测串行输入的二进制序列,每当连续输入三个或三个以上的1时,序列检测器的输出为1,其它情况下输出为0。(1)画出状态转移图。(2)写出VerilogHDL程序(要求在程序中使用2个always语句),A,11,状态图:s0:初始状态,电路还未收到一个有效1s1:收到一个1后的状态S2:连续收到两个1后的状态s3:连续收到三个1个后的状态,A,12,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)begin,case(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,13,作业:下图是一个A/D采集系统,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:控制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。控制器(control)是一个有限状态机,完成对AD574的控制,和adram的写入操作。adram是一个双口RAMIP核,在wren为1时允许写入数据。,A,14,A/D采集系统,A,15,AD574逻辑控制真值表(X表示任意),AD574工作时序,下面表列出了AD574的控制方式(X表示任意信号)和控制时序图(STATUS为高电平,FPGA等待A/D转换,STATUS为低电平,A/D转换完成,数据输出有效):,A,16,回答问题:1)试画出控制器Control模块的状态机的状态图。2)地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对地址计数器模块(addrcnt)进行VerilogHDL描述。3)根据问题1)的状态图,试对控制器Control模块进行VerilogHDL描述。4)已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行顶层模块的VerilogHDL描述(顶层名设为ADC574)。,A,17,1)试画出控制器Control模块的状态机的状态图。,A,18,2)地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对该模块进行verilog描述。modulecnt64(ClkInc,Cntclr,Wraddr);inputClkInc,Cntclr;output5:0Wraddr;reg5:0Wraddr;always(posedgeClkIncorposedgeCntclr)beginif(Cntclr)Wraddr=6d0;elseWraddr=Wraddr+1;endendmodule,A,19,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;,A,20,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,A,21,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,A,22,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;,A,23,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;,A,24,assignwren=1b1;controlu1(.CLK(CLK),.STATUS(STATUS),.ADDATA(ADDATA),.CS(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论