西工大FPGA实验报告二

上传人:壹****1 文档编号:548121572 上传时间:2023-08-28 格式:DOCX 页数:7 大小:115.68KB
返回 下载 相关 举报
西工大FPGA实验报告二_第1页
第1页 / 共7页
西工大FPGA实验报告二_第2页
第2页 / 共7页
西工大FPGA实验报告二_第3页
第3页 / 共7页
西工大FPGA实验报告二_第4页
第4页 / 共7页
西工大FPGA实验报告二_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《西工大FPGA实验报告二》由会员分享,可在线阅读,更多相关《西工大FPGA实验报告二(7页珍藏版)》请在金锄头文库上搜索。

1、西北工业大学硬件描述语言语与 FPGA实验报告学院学号姓名专业实验时间实验地点指导教师西北工业大学20 年 月利用状态机实现比较复杂的接口设计一、实验目的及要求1. 学习运用由状态机控制的逻辑开关,设计出一个比较复杂的接口逻辑;2. 在复杂设计中使用任务(task)结构,以提高程序的可读性;3. 加深对可综合风格模块的认识。二、实验设备(环境)及要求预装了开发工具synplify、ModelSimSE的PC机。三、实验内容与步骤内容:利用状态机实现一个比较复杂的接口设计。步骤:1.建立工程并编写模块源码;2.编写测试模块并思考状态机是如何实现复杂的接口设计的;3布局布线并仿真;4. 记录数据并

2、完成实验报告。四、实验代码module writing(reset,clk,address,data,sda,ack);input reset, clk;input7:0 data, address;inout sda;output ack;reg link_write;reg3:0 state;reg4:0 sh8out_state;reg7:0 sh8out_buf;reg finish_F;reg ack;parameter idle=0,addr_write=l,data_write=2,stop_ack=3;parameter bit0=1,bit1=2,bit2=3,bit3=4,

3、bit4=5,bit5=6,bit6=7,bit7=8;assign sda=link_write ? sh8out_buf7: 1bz;always (posedge clk)begin if(!reset) begin link_write =0; state=idle;finish_F=0;sh8out_state =idle; ack=0;sh8out_buf =0;endelsecase(state)idle:beginlink_write =0;finish_F=0;sh8out_statev=idle;ack=0;sh8out_buf =address; state=addr_w

4、rite;endaddr_write:begin if(finish_F=O) begin shift8_out;endelsebeginsh8out_state = idle; sh8out_buf = data; state=data_write; finish_F=0;endenddata write:beginif(finish_F=O)begin shift8_out; end elsebegin link_writev=O; state= stop_ack; finish_F=0; ack=1;endendstop_ack: begin ack=0; statev=idle;end

5、endcaseendtask shift8_out;begincase(sh8out_state)idle:beginlink_writev=l; sh8out_statev=bit7;endbit7:beginlink_write=1; sh8out_statev=bit6;sh8out_bufv=sh8out_bufvv1; endbit6:beginsh8out_statev=bit5; sh8out_bufv=sh8out_bufvv1;endbit5:beginsh8out_statev=bit4;sh8out bufv=sh8out bufvv1;endbit4: beginsh8

6、out_statev=bit3; sh8out_bufv=sh8out_bufvvl; endbit3: beginsh8out_statev=bit2; sh8out_bufv=sh8out_bufvv1; endbit2: beginsh8out_statev=bit1; sh8out_bufv=sh8out_bufvv1; endbitl: beginsh8out_statev=bitO; sh8out_bufv=sh8out_bufvv1; endbit0: beginlink_writev=O; finish_F=1;endendcaseendendtaskendmodule测试代码

7、.timescale 1ns/100ps define clk_cycle 50 module writingTop;reg reset,clk; reg7:0data,address; wire ack,sda;always #clk cycle clk =clk;initialbeginclk=O;reset=l;data=0;address=O;#(2*clk_cycle) reset=0;#(2*clk_cycle) reset=1;#(100*clk_cycle) $stop;endalways(posedge ack)begindata=data+1;address=address+1;endwritingwriting(.reset(reset),.clk(clk),.data(data),.address(address),.ack(ack),.sda(sda); endmodule五、仿真综合结果仿真图综合图RTL级网表n_state_4 nSh_F_2_sqmwQ门级网标六、教师评语成绩签名:日期:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号