专用集成电路实验报告范本(实验满分)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一跑马灯设计一、实验目的1、初步了解QUARTUSⅡ软件使用方法和VerilogHDL输入的全过程。2、初步熟悉实验系统的使用。3、掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,利用JTAG/AS进行下载的基本操作;二、实验要求使LED成流水的方式,在不同的状态中间进行转换,本设计中主要是让LED显示灯按照一定时间间断来显示,通过这样的间隔来使LED按流水方式显示并循环。三、实验用到的软件和器件软件:QuartusII软件硬件:实验开发板,计算机四、实验原理(程序代码)moduleled8(led7,cp);inputcp;output[7:0]led7;reg[7:0]led7=8’b10000000;always@(posedgecp)led7={led7[6:0],led7[7]};endmodule五、实验步骤(详细调试步骤,附管脚分配图)1、对QuartusII进行授权。2、建立新的工程和VerilongHDL环境。3、编写程序,保存并综合分析。4、分配输入输出引脚。5、在计算机上进行编译。6、用USB连接实验箱和计算机,并安装好USB电缆。7、打开实验箱电源,进行仿真。Cp接PIN_C13六、实验现象与结果(附图)实验二七人表决器设计一、实验目的1、熟悉VerilogHDL的编程。2、熟悉组合逻辑电路设计方法,熟悉七人表决器的工作原理。3、进一步熟悉实验系统的硬件结构。二、实验要求所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。三、实验用到的软件和器件软件:QuartusII软件硬件:实验开发板,计算机四、实验原理modulebj(pass,data_out,vote);outputpass;outputdata_out;input[6:0]vote;reg[4:0]sum;reg[6:0]data_out;integeri;regpass;always@(vote)beginsum=0;for(i=0;i=6;i=i+1)if(vote[i])sum=sum+1;if(sum[2])pass=1;elsepass=0;endalways@(sum)case(sum)4'b0000:data_out=7'b1000000;//04'b0001:data_out=7'b1111001;//14'b0010:data_out=7'b0100100;//24'b0011:data_out=7'b0110000;//34'b0100:data_out=7'b0011001;//44'b0101:data_out=7'b0010010;//54'b0110:data_out=7'b0000011;//64'b0111:data_out=7'b1111000;//74'b1000:data_out=7'b0000000;//84'b1001:data_out=7'b0011000;//94'b1010:data_out=7'b0001000;//A4'b1011:data_out=7'b0000011;//b4'b1100:data_out=7'b0100111;//c4'b1101:data_out=7'b0100001;//d4'b1110:data_out=7'b0000110;//E4'b1111:data_out=7'b0001110;//Fdefault:data_out=7'b1111111;endcaseendmodule五、实验步骤六、实验现象与结果实验三矩阵键盘显示电路的设计一、实验目的1、了解普通4×4键盘扫描的原理。2、进一步加深七段码管显示过程的理解。3、了解对输入/输出端口的定义方法。二、实验内容本实验要求完成的任务是通过编程实现对4X4矩阵键盘按下键的键值的读取,并在数码管上完成一定功能(如移动等)的显示。按键盘的定义,按下“*”键则在数码管是显示“E”键值。按下“#”键在数码管上显示“F”键值。其它的键则按键盘上的标识进行显示。三、实验用到的软件和器件软件:QuartusII软件硬件:实验开发板,计算机本实验箱上的4X4矩阵键盘的电路原理如图1所示。与FPGA的管脚连接如表1所示。图14X4矩阵键盘电路原理图表14X4矩阵键与FPGA的管脚连接表四、实验原理modulejp(clk,reset,row,col,data_out);inputclk,reset;input[3:0]row;output[3:0]col;output[6:0]data_out;reg[6:0]data_out;reg[3:0]col;reg[3:0]key_value;reg[5:0]count;//delay_20msreg[2:0]state;//状态标志regkey_flag;//按键标志位regclk_500khz;//500KHZ时钟信号reg[3:0]col_reg;//寄存扫描列值reg[3:0]row_reg;//寄存扫描行值always@(posedgeclkornegedgereset)if(!reset)beginclk_500khz=0;count=0;endelsebeginif(count=50)beginclk_500khz=~clk_500khz;count=0;endelsecount=count+1;endalways@(posedgeclk_500khzornegedgereset)if(!reset)begincol=4'b0000;state=0;endelsebegincase(state)0:begincol[3:0]=4'b0000;key_flag=1'b0;信号名称对应FPGA管脚名说明KEY-C0B8矩阵键盘的第1列选择KEY-C1A9矩阵键盘的第2列选择KEY-C2B9矩阵键盘的第3列选择KEY-C3E5矩阵键盘的第4列选择KEY-R0B6矩阵键盘的第1行选择KEY-R1A7矩阵键盘的第2行选择KEY-R2B7矩阵键盘的第3行选择KEY-R3A8矩阵键盘的第4行选择if(row[3:0]!=4'b1111)beginstate=1;col[3:0]=4'b1110;end//有键按下,扫描第一行elsestate=0;end1:beginif(row[3:0]!=4'b1111)beginstate=5;end//判断是否是第一行وelsebeginstate=2;col[3:0]=4'b1101;end//扫描第二行end2:beginif(row[3:0]!=4'b1111)beginstate=5;end//判断是否是第二行elsebeginstate=3;col[3:0]=4'b1011;end//扫描第三行end3:beginif(row[3:0]!=4'b1111)beginstate=5;end//判断是否是第三行elsebeginstate=4;col[3:0]=4'b0111;end//扫描第四行end4:beginif(row[3:0]!=4'b1111)beginstate=5;end//判断是否是第一行elsestate=0;end5:beginif(row[3:0]!=4'b1111)begincol_reg=col;//保存扫描列值row_reg=row;//保存扫描行值state=5;key_flag=1'b1;//有键按下endelsebeginstate=0;endendendcaseendalways@(clk_500khzorcol_regorrow_reg)beginif(key_flag==1'b1)begincase({col_reg,row_reg})8'b1110_1110:key_value=13;8'b1110_1101:key_value=14;8'b1110_1011:key_value=0;8'b1110_0111:key_value=15;8'b1101_1110:key_value=12;8'b1101_1101:key_value=9;8'b1101_1011:key_value=8;8'b1101_0111:key_value=7;8'b1011_1110:key_value=11;8'b1011_1101:key_value=6;8'b1011_1011:key_value=5;8'b1011_0111:key_value=4;8'b0111_1110:key_value=10;8'b0111_1101:key_value=3;8'b0111_1011:key_value=2;8'b0111_0111:key_value=1;endcaseendendalways@(key_value)begincase(key_value)4'b0000:data_out=7'b0111111;//04'b0001:data_out=7'b0000110;//14'b0010:data_out=7'b1011011;//24'b0011:data_out=7'b1001111;//34'b0100:data_out=7'b1100110;//44'b0101:data_out=7'b1101101;//54'b0110:data_out=7'b1111100;//64'b0111:data_out=7'b0000111;//74'b1000:data_out=7'b1111111;//84'b1001:data_out=7'b1100111;//94'b1010:data_out=7'b1110111;//A4'b1011:data_out=7'b1111100;//b4'b1100:data_out=7'b1011000;//c4'b1101:data_out=7'b1011110;//d4'b1110:data_out=7'b1111001;//E4'b1111:data_out=7'b1110001;//Fdefault:data_out=7'b0000000;endcasedata_out=~data_out;endendmodule五、实验步骤六、实验现象与结果实验四交通灯控制电路的设计一、实验目的1、了解交通灯的燃灭规律。2、了解交通灯控制器的工作原理。3、熟悉VerilogHDL语言编程,了解实际设计中的优化方案。二、实验要求本实验仅针对最简单的南北和东西直行的情况。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始亮。延时一段时间后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始亮。延时一段时间后,再切换到东西路口方向,重复上述过程。三、实验用到的软件和器件软件:QuartusII软件硬件:实验开发板,计算机表2交通灯模块与FPGA的管脚连接表四、实验原理modulejtd(clk,hong1,hong2,huang1,huang2,lv1,lv2);inputclk;outputhong1,hong2,huang1,huang2,lv1,lv2;reg

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功