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

下载本文档

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

文档简介

1、作业答案作业答案3.3 设A=4b1010,B=4b0011,C=1b1,则下式运算结果是什么?(1) A 0101(2) A1 0101(3) A,B0,C 101011(4) A & B 0010(5) A B 1001(6) AB 0 3.5 有一个模块名为my_module,其输入/输出端口情况如题图3.1所示,试写出模块Verilog HDL的描述框架,即模块的定义、端口罗列和端口定义等。module my_modudle( AIN, BIN, CIN, CLK, ENABLE, RESET DATA_OUT) Input3:0 AIN; Input2:0 BIN; Inpu

2、t1:0 CIN; Input CLK, ENABLE, RESET; Output4:0 DATA_OUT;.作业答案作业答案 3.6 在下面的initial块中,根据每条语句的执行时刻,写出每个变量在仿真过程中和仿真结束时的值。initialbeginA=1b0; B=1b1; C=2b10; D=4b1100; #10 begin A=1b1;B=1b0;end#15 beginC= #5 2b01;end#10 beginD=#7 A,B,C; endend作业答案作业答案 3.6 #0 A=1b0,B=1b 1,C=2b10, D=4b1100,#10 A=1b 1,B=1b 0,C

3、=2b10, D=4b1100,#30 A=1b 1,B=1b 0,C=2b01, D=4b1100,#42 A=1b 1,B=1b 0,C=2b01, D=4b1001.作业答案作业答案 3.7 定义一个深度为256,位宽为8比特的寄存器型数组,用for语句对该数组进行初始化,要求把所有的偶元素初始化为0,所有的奇元素初始化为1。3.7.reg 7:0 stage 255:0initialbegin for(i=0;i256;i=i+2) stagei = 0; for(i=1;i256;i=i+2) statei=1;end 作业答案作业答案 3.8 设计一个移位函数,输入一个位宽是32比

4、特的数data,和一个左移、右移的控制信号shift_contr1:0,shift_contr1=1,data左移一位,shift_contr0=1,data右移一位,函数返回移位后的数值。3.8 function 31:0 shift input31:0 data_in; input1:0 shift_contr; begin if (shift_contr1) shift= data_in 1; end endfunction作业答案作业答案 3.10 定义一个任务,该任务能计算出一个八位变量的偶校验位作为该任务的输出,计算结束后,经过三个时钟周期将该校验位赋给任务的输出。3.10 tas

5、k parity(even_bit,odd_bit,input_bus); output even_bit,odd_bit; input7:0 input_bus; reg even_bit, odd_bit,a;beginodd_bit = input_bus; /产生奇校验位 a = odd_bit;end; /产生偶校验位 (posedge clk) (posedge clk) (posedge clk) even_bit=a;endendtask 作业答案作业答案 3.12 module mux4(A,B, C,D,sel,data_sel);parameter width = 8;

6、inputwidth-1:0 A,B,C,D;input1:0 sel;outputwidth-1:0 data_sel ;reg 3:0 data_sel;always(A or B or C or D or sel) begin case(sel) 2b00 : data_sel = A; 2b01 : data_sel = B; 2b10 : data_sel = C; 2b11 : data_sel = D; default : $display(signal is invalid); endcase endendmodule作业答案作业答案 3.12 module mux4(clk,

7、rst,A,B, C,D,sel,data_sel);parameter width = 8; inputwidth-1:0 A,B,C,D;input1:0 sel;input clk,rst;outputwidth-1:0 data_sel ;wire 3:0 data_sel;assign data_sel=sel1? (sel0 ? D:C) : (sel0 ? B:A);endmodule作业答案作业答案 作业答案作业答案设计一个序列检测器,用于检测串行输入的二进制序列,每当连续输入三个或三个以上的1时,序列检测器的输出为1,其它情况下输出为0。(1)画出状态转移图。(2)写出Ver

8、ilog HDL程序(要求在程序中使用2个always 语句) 作业答案作业答案状态图:s0:初始状态,电路还未收到一个有效1 s1:收到一个1后的状态S2:连续收到两个1后的状态 s3:连续收到三个1个后的状态 作业答案作业答案module fsm(clk,reset, ina,out);input clk,ina;output out;reg out;parameter s0 = 2b00,s1 =2b01,s2 =2b10,s3=2b11;reg0:1 state,next_state;always (posedge clk)begin if (!reset) state = s0 ;

9、else state=next_state; endalways (state or ina)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采集控制模块,该模块由三个部分构成:控

10、制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。控制器(control)是一个有限状态机,完成对AD574的控制,和adram的写入操作。adram是一个双口RAM IP核,在wren为1时允许写入数据。A/D采集系统 作业答案作业答案 AD574逻辑控制真值表(X表示任意) AD574工作时序 作业答案作业答案 下面表列出了AD574的控制方式(X表示任意信号)和控制时序图(STATUS为高电平,FPGA等待A/D转换,STATUS为低电平,A/D转换完成,数据输出有效):CECSRCK12_8A0工 作 状 态0XXXX禁止100X1启动8位转换1010

11、1转换后数据输出有效 作业答案作业答案回答问题: 1)试画出控制器Control模块的状态机的状态图。 2)地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对地址计数器模块(addrcnt)进行Verilog HDL描述。 3)根据问题1)的状态图,试对控制器Control模块进行Verilog HDL描述。 4) 已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行顶层模块的Verilog HDL描述(顶层名设为ADC574)。 作业答案作业答案 1)试画出控制器Control模块的状态机的状态图。 作业答案作业答案2) 地址计数器每当ClkInc时钟上升沿到

12、达,输出地址加1,请对该模块进行verilog描述。module cnt64(ClkInc, Cntclr, Wraddr); input ClkInc, Cntclr; output5:0 Wraddr; reg5:0 Wraddr; always(posedge ClkInc or posedge Cntclr)beginif(Cntclr) Wraddr=6d0;else Wraddr=Wraddr+1;endendmodule 作业答案作业答案3) 根据状态图,试对control进行Verilog描述. module control(CLK, STATUS, ADData, CS, C

13、E, A0, RC, K12_8, ClkInc, rddata); input CLK, STATUS; /时钟信号和AD转换状态信号输入 input7:0 ADData; /转换数据输入 output CS, CE, A0, RC, K12_8; / AD574控制信号 output ClkInc; /地址计数器时钟信号 output7:0 rddata; /转换数据输出 parameter s0=0,s1=1,s2=2,s3=3,s4=4; reg2:0 st; reg lock; reg CS, CE,RC; 作业答案作业答案assign K12_8=1b0; assign A0=1b

14、1; assign ClkInc=(lock=1b1)?1:0; assign rddata=(lock=1b1)?ADData:rddata; always(posedge CLK) begin case(st) s0: begin st = s1; RC =1b1; CE=1b0; CS =1b1; lock =1b0;end s1: begin st = s2; RC =1b0; CE=1b1; CS =1b0; lock =1b0;end 作业答案作业答案s2: if(!STATUS) st = s3; else begin st = s2; RC =1b1; CE=1b1; CS =

15、1b0; lock =1b0;ends3: begin st = s4;RC =1b1;CE =1b1;CS =1b0;lock =1b1;ends4:begin st = s0;RC =1b1;CE =1b1;CS =1b0;lock =1b0;enddefault:st=s0;endcaseendendmodule 作业答案作业答案5) 已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行Verilog顶层描述。顶层名为ADC574. module ADC574(CLK, STATUS, ADDATA, Cntclr, Rdaddr, CS, CE, A0, RC,

16、K12_8, rddata); input CLK, STATUS; /时钟信号和AD转换状态信号输入 input7:0 ADDATA; /转换数据输入 input Cntclr; /计数器清零信号 input5:0 Rdaddr; / adram读数地址output CS, CE, A0, RC, K12_8; / AD574控制信号output7:0 rddata; / adram读数据输出wire ClkInc;wire5:0 Wraddr;wire7:0 r_data;wire wren; 作业答案作业答案5) 已知adram的端口描述如下,试用例化语句,对整个FPGA采集控制模块进行

17、Verilog顶层描述。顶层名为ADC574. module ADC574(CLK, STATUS, ADDATA, Cntclr, Rdaddr, CS, CE, A0, RC, K12_8, rddata); input CLK, STATUS; /时钟信号和AD转换状态信号输入 input7:0 ADDATA; /转换数据输入 input Cntclr; /计数器清零信号 input5:0 Rdaddr; / adram读数地址output CS, CE, A0, RC, K12_8; / AD574控制信号output7:0 rddata; / adram读数据输出wire ClkInc;wire5:0 Wraddr;wire7:0 r_data;wire wren; 作业答案作业答案assign wren=1b1; control u1(.CLK(CLK),

温馨提示

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

评论

0/150

提交评论