当前位置:文档之家› PLD与数字系统设计实验报告

PLD与数字系统设计实验报告

PLD与数字系统设计实验报告
PLD与数字系统设计实验报告

PLD与数字系统设计实验报告

A组实验四:数字密码锁

1 实验要求

使用Xilinx公司的Spartan3S 400AN开发板上的相关模块,利用ISE开发软件完成数字密码锁的设计,要求实现如下功能:

利用实验板上的4×3小键盘,设计4位密码锁,当输入密码正确时,在液晶屏上显示“OK”,否则,显示“ERROR”,在输入过程中,显示输入的数据个数,当有错误的输入时,显示“ERROR”,当全部输入正确时,才显示OK。

2 实验原理

2.1 4×3数字键盘

数字键盘又叫行列式键盘。用带IO口的线组成行列结构,按键设置在行列的交点上。例如用4×3的行列式结构可以构成12个键的键盘。实验中所用到的数字键盘原理如图1所示。

图1 4×3数字键盘

例如设置此模块的列为输入端口,行为输出端口。那么在按下某一个键时,该键所在的开关接通,由输入端口向输出端口输出一个有效电平,继而触发其他模块。

2.2 LCD液晶显示模块

开发板上使用的是无字库的12864LCD显示器,12864LCD显示模块是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭(但实验所用开发板上该模块实际是低电平表示亮、

高电平表示灭)。存储这些点阵信息的RAM称为显示数据存储器。以下是关于显示屏的一些参数:

图2 128*64 LCD控制器结构框图

图3 128*64时序图

图4 指令功能表

图5 初始化指令流程

要显示某个图形就是将相应的点阵信息写入到相应的存储单元中。图形的点阵信息可以由自己设计也可借助字模软件,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。

由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。

显示点在64*64液晶屏上的位置由行号(line, 0~63)与列号(column, 0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress, 0~63)确定。每个存储单元存储8个液晶点的显示信息。

为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。因此存储单元地址包括页地址(Xpage, 0~7)和列地址(Yaddress, 0~63)。

例如点亮128*64的屏中(50, 30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址50除以8取整得6,取余得2,该点在RAM中页地址为6,在字节中的序号为2;所以将二进制数据11111101写入Xpage=6,Yaddress=29的存储单元中即点亮(50, 30)上的液晶点。

3 实验仪器

1.XUP(FPGA:spartan3S400AN)实验开发板

2.安装ISE软件的电脑

4 实验主要操作步骤

4.1 实验设计思想

实验采用分层次设计的方法,用硬件描述语言分别实现数字键盘数据的发送接收功能及液晶显示的功能模块,具体方法如下:

1. 通过ISE开发工具,新建3个模块,分别为数字键盘模块,LCD12864液晶显示模块和LCD字库模块。

2.数字键盘模块:以一定频率按行扫描数字键盘,检测该行有无输入,若有则判断输入是什么,并传送相应信息给LCD模块;若无则继续扫描下一行。如此反复。

3.液晶显示模块:根据LCD显示模块的原理,将其控制分为指令控制部分和显示控制部分。其中使用状态机和分频器完成指令控制,每一个分频时钟周期到来时,执行状态机中的一个状态,即初始化命令或读写数据命令。

4.LCD字库模块:因为实验板上的12864LCD是无字库的,故利用字模软件将要用到的字模数据保存在模块中。

4.2 各模块设计实现

在理解数字键盘和LCD液晶显示的使用方法后,使用Verilog语言描述出各部分要实现的功能,完成实验的要求。

4.2.1 数字键盘模块的设计

下面是该模块功能实现的部分Verilog源程序:

always @ ( posedge clk or negedge rst_s ) //产生周期为1ms的控制信号,占空时间为20ns

begin

if( !rst_s )

begin

CountA <= 16'd0;

ENA <= 1'b0;

end

else

if( CountA == T1MS )

begin

CountA <= 16'd0;

ENA <= 1'b1;

end

else

begin

CountA <= CountA + 1'b1;

ENA <= 1'b0;

end

end

always @ ( posedge clk or negedge rst_s ) //数字键盘扫描,每50ms扫描一行begin

if( !rst_s )

begin

CountB <= 6'd0;

Key_Row <= 4'b0111;

ENB <= 1'b0;

end

else

if( CountB == 6'd49 && ENA )

begin

CountB <= 6'd0;

Key_Row <= { Key_Row[0], Key_Row[3:1] };

ENB <= 1'b1;

end

else if( ENA )

begin

CountB <= CountB + 1'b1;

ENB <= 1'b0;

end

else

ENB <= 1'b0;

end

always @ ( posedge clk ) //判断每行是否有数据输入,是什么数据begin

if( Key_Row == 4'b0111 && ENB )

begin

if( !Key_Column[2] )

begin w_flag<=1;key_get <= 1;end

else if( !Key_Column[1] )

begin w_flag<=1;key_get <= 2;end

else if( !Key_Column[0] )

begin w_flag<=1;key_get <= 3;end

else

w_flag<=0;

else if( Key_Row == 4'b1011 && ENB )

begin

if( !Key_Column[2] )

begin w_flag<=1;key_get <= 4;end

else if( !Key_Column[1] )

begin w_flag<=1;key_get <= 5;end

else if( !Key_Column[0] )

begin w_flag<=1;key_get <= 6;end

else

w_flag<=0;

end

else if( Key_Row == 4'b1101 && ENB )

begin

if( !Key_Column[2] )

begin w_flag<=1;key_get <= 7;end

else if( !Key_Column[1] )

begin w_flag<=1;key_get <= 8;end

else if( !Key_Column[0] )

begin w_flag<=1;key_get <= 9;end

else

w_flag<=0;

end

else if( Key_Row == 4'b1110 && ENB )

begin

if( !Key_Column[2] )

begin w_flag<=1;key_get <= 10;end //10代表“*”

else if( !Key_Column[1] )

begin w_flag<=1;key_get <= 0;end

else if( !Key_Column[0] )

begin w_flag<=1;key_get <= 11;end //11代表“#”

else

w_flag<=0;

end

end

4.2.2 显示模块的设计

always@(posedge clk_lcd )

begin

if(!rst_s)

state<=IDLE;

data<=8'hzz;

char_cnt<=8'h00;

flag<=1'b1;

cle_cnt<=9'd0;

mi_cnt<=6'd0;

end

else

begin

case(state)

0: //初始化Function Set

begin

state<=state+1;

data<=8'h30;

rst_lcd<=0;

end

1:

begin

state<=state+1;

data<=8'h3f;

rst_lcd<=1;

end

2:

begin

state<=state+1;

data<=8'h3f;

end

3: //初始化Display ON/OFF Control

begin

state<=state+1;

data<=8'h0c;

end

4: //初始化Display Clear

begin

state<=state+1;

data<=8'h01;

end

5: //初始化Entry Mode Set

begin

state<=state+1;

data<=8'h06;

end

6: //页初始化

begin

state<=state+1;

if((char_cnt==0)||(char_cnt==128))

data<=8'hb8;

else if((char_cnt==64)||(char_cnt==136))

data<=8'hb9;

else if((char_cnt==144)||(char_cnt==176))

data<=8'hbc;

else if((char_cnt==160)||(char_cnt==216))

data<=8'hbd;

end

7: //列初始化

begin

state<=state+1;

data<=8'h40;

end

8: //写数据给LCD

begin

if((char_cnt>=0&&char_cnt<=127)||(char_cnt>=144&&char_cnt<=175)||(char_cnt>= 176&&char_cnt<=255))

begin

cs1<=1;

cs2<=0;

if((char_cnt>=0&&char_cnt<=63)||(char_cnt>=144&&char_cnt<=159)||(char_cnt >=176&&char_cnt<=215))

begin

char_cnt<=char_cnt+1'b1;

data<=data_disp;

if((char_cnt==63)||(char_cnt==159)||(char_cnt==215))

state<=6;

else

state<=8;

end

else

if((char_cnt>=64&&char_cnt<=127)||(char_cnt>=160&&char_cnt<=175)||(char_cnt> =216&&char_cnt<=255))

begin

char_cnt<=char_cnt+1'b1;

data<=data_disp;

if(char_cnt==127)

state<=6;

else

if((char_cnt==175)||(char_cnt==255))

state<=STOP1;

else

state<=8;

end

end

else if(char_cnt>=128&&char_cnt<=143)

begin

cs1<=0;

cs2<=1;

if(char_cnt>=128&&char_cnt<=135)

begin

char_cnt<=char_cnt+1'b1;

data<=data_disp;

if(char_cnt==135)

state<=6;

else

state<=8;

end

else if(char_cnt>=136&&char_cnt<=143)

begin

char_cnt<=char_cnt+1'b1;

data<=data_disp;

if(char_cnt==143)

state<=9;

else

state<=8;

end

end

end

9: //判断数字键盘收到的第一个密码是否正确

begin

if(w_flag==0)

begin

state<=9;

cs1<=1;

cs2<=1;

data<=8'h3f;

end

else

begin

if((di_mi==0)&&(pw0==key_get))

state<=13;

else

begin

state<=6;

char_cnt<=176;

end

end

end

10: //判断数字键盘收到的第二个密码是否正确begin

if(w_flag==0||key_get==pw0)

begin

state<=10;

cs1<=1;

cs2<=1;

data<=8'h3f;

end

else

begin

if((di_mi==1)&&(pw1==key_get))

state<=13;

else

begin

state<=6;

char_cnt<=176;

end

end

end

11: //判断数字键盘收到的第三个密码是否正确

begin

if(w_flag==0||key_get==pw1)

begin

state<=11;

cs1<=1;

cs2<=1;

data<=8'h3f;

end

else

begin

if((di_mi==2)&&(pw2==key_get))

state<=13;

else

begin

state<=6;

char_cnt<=176;

end

end

end

12: //判断数字键盘收到的第四个密码是否正确begin

if(w_flag==0||key_get==pw2)

begin

state<=12;

cs1<=1;

cs2<=1;

data<=8'h3f;

end

else

begin

if((di_mi==3)&&(pw3==key_get))

state<=state+1;

else

begin

state<=6;

char_cnt<=176;

end

end

end

13: //显示数字页初始化

begin

state<=state+1;

if((mi_cnt==0)||(mi_cnt==16)||(mi_cnt==32)||(mi_cnt==48))

data<=8'hb8;

else

if((mi_cnt==8)||(mi_cnt==24)||(mi_cnt==40)||(mi_cnt==56))

data<=8'hb9;

end

14: //显示数字列初始化

begin

state<=state+1;

if((mi_cnt==0)||(mi_cnt==8))

data<=8'h50;

else if((mi_cnt==16)||(mi_cnt==24))

data<=8'h58;

else if((mi_cnt==32)||(mi_cnt==40))

data<=8'h60;

else if((mi_cnt==48)||(mi_cnt==56))

data<=8'h68;

end

15: //写数字数据给LCD

begin

cs1<=0;

cs2<=1;

if(mi_cnt>=0&&mi_cnt<=7)

begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==7)

state<=13;

else

state<=15;

end

else if(mi_cnt>=8&&mi_cnt<=15)

begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==15)

begin

state<=10;

di_mi<=2'b01;

end

else

state<=15;

end

else if(mi_cnt>=16&&mi_cnt<=23) begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==23)

state<=13;

else

state<=15;

end

else if(mi_cnt>=24&&mi_cnt<=31) begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==31)

begin

state<=11;

di_mi<=2'b10;

end

else

state<=16;

end

else if(mi_cnt>=32&&mi_cnt<=39) begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==39)

state<=13;

else

state<=15;

end

else if(mi_cnt>=40&&mi_cnt<=47) begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==47)

begin

state<=12;

di_mi<=2'b11;

end

else

state<=15;

end

else if(mi_cnt>=48&&mi_cnt<=55)

begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==55)

state<=13;

else

state<=15;

end

else if(mi_cnt>=56&&mi_cnt<=63)

begin

mi_cnt<=mi_cnt+1'b1;

data<=mi_disp;

if(mi_cnt==63)

begin

state<=state+1;

char_cnt<=144;

di_mi<=2'b00;

end

else

state<=WRITERAM1;

end

end

always@(mi_cnt)

begin

case(mi_cnt)

6'h00:mi_disp<=8'h00;

6'h01:mi_disp<=8'hE0;

6'h02:mi_disp<=8'h10;

6'h03:mi_disp<=8'h08;

6'h04:mi_disp<=8'h08;

6'h05:mi_disp<=8'h10;

6'h06:mi_disp<=8'hE0;

6'h07:mi_disp<=8'h00;

6'h08:mi_disp<=8'h00;

6'h09:mi_disp<=8'h0F;

6'h0a:mi_disp<=8'h10;

6'h0b:mi_disp<=8'h20;

6'h0c:mi_disp<=8'h20;

6'h0d:mi_disp<=8'h10;

6'h0e:mi_disp<=8'h0F;

6'h0f:mi_disp<=8'h00;

6'h10:mi_disp<=8'h00;

6'h11:mi_disp<=8'h10;

6'h12:mi_disp<=8'h10;

6'h13:mi_disp<=8'hF8;

.

.

.

end

然后添加用户约束文件,确定对应芯片的管脚号,进行综合设计实现,生成下载文件下载到芯片中。

图6 用户约束文件

5 实验结果

用ISE把源程序编译好以后,把程序文件下载到芯片中,按顺序输入正确的密码:0123,输入过程中每输一个数字,LCD便会显示相同的数字,四个密码输完时,LCD显示OK字样,结果如下图:

图7 密码正确的显示结果

图8 密码错误的显示结果

6 总结

本学期PLD与数字系统设计课程的学习,我从中收获了很多知识,从完全没学接触过PLD、FPGA,没用过verilog描述硬件逻辑,到现在能自己编一个实验程序,虽然这个功能不算复杂,编写的程序也很不完善,但这也让我获得了前所未有的成就感,同时为以后的深入学习打下了基础。回顾这学期,从刚开始学习一些基本的芯片理论知识,到后来接触实验,开始熟悉软件ISE的使用,进一步懂得了多层次的设计方法,掌握了基本的Verilog语言的设计方法。

这次的数字密码锁实验,从开始研究12864LCD芯片和4×3数字键盘的工作原理到最后程序编译成功实现功能,这中间遇到了很多问题。例如,没有给LCD 充足的时间写入命令和数据,状态机的机理没有弄清楚导致LCD功能无法实现,模块间的连接出现问题。这些都会直接导致实验要求无法实现。通过查阅相关资

料,参考部分成功的程序,进而改进自己的程序,最终还是实现的实验功能。不

过还是存在诸多不足,按照李老师后来在几次课上讲解了实验相关内容,我发现状态机的编写还可以更好,在状态中通过计数器实现等待LCD命令被写入;存储字模的模块可以通过二维数组实现而不需用到状态机,等等。

通过这次实验我对FPGA,CPLD有了基础的认识,初步掌握了Verilog语言,这为我今后深入学习奠定了良好的基础。

《管理信息系统》课程设计实验报告

《管理信息系统》课程设计实验报告 课程名称:管理信息系统 指导老师: ******* 院系:商学院 专业班级: ******** 姓名: ******** 学号: ******** 实验日期: 2011.7.11 实验地点:一机房

《管理信息系统》课程设计任务书 一.课程设计目的及意义: 《管理信息系统》课程设计是在完成《管理信息系统》课程学习之后的一次实践性教 学,是本课程理论知识的一次综合运用。通过本课程设计,能够进一步加深对信息、信息系 统、管理信息系统等基础理论知识的理解,能初步掌握结构化的生命周期法、面向对象法等 系统工程方法,进一步加强熟练应用管理信息系统的操作技能,并能够借助于管理信息系统 解决实际问题。 二.课程设计要求: 1.本课程设计时间为一周。 2.本课程设计以教学班为单位进行上机操作及实验。 3.按照任务要求完成课程设计内容。 三.课程设计任务要求: 1.任务内容:进入山东轻工业学院主页,在“网络资源”区域进入“网络教学平台”,输入各自的用户名和密码(学生学号及密码),进入本网络教学平台系统,在充分熟悉本系统 的前提下,完成下列任务要求。 2.任务要求: ①按照课程讲解的系统分析步骤和理论对本系统进行系统分析。 ②绘制不少于 3 个的主要业务流程图。 ③描述上述主要业务流程图的逻辑处理功能。 ④分析本系统的优缺点,提出改进意见,并描述改进的逻辑处理功能,绘制业务流 程图。 四.课程设计评分标准: 按照《管理信息系统课程设计大纲》的要求,本课程 1 学分,采用百分制计分,其中 任务要求②占30 分,任务要求③占30 分,任务要求④占30 分,考勤及实践表现占10 分。五.本课程设计自2011 年 6 月 27 日至 2011 年 7 月 1 日。

数字电路与系统设计课后习题答案

(此文档为word格式,下载后您可任意编辑修改!) 1.1将下列各式写成按权展开式: (352.6)10=3×102+5×101+2×100+6×10-1 (101.101)2=1×22+1×20+1×2-1+1×2-3 (54.6)8=5×81+54×80+6×8-1 (13A.4F)16=1×162+3×161+10×160+4×16-1+15×16-2 1.2按十进制0~17的次序,列表填写出相应的二进制、八进制、十六进制数。 解:略 解:分别代表28=256和210=1024个数。 (1750)8=(1000)10 (3E8)16=(1000)10 1.5将下列各数分别转换为二进制数:(210)8,(136)10,(88)16 1.6将下列个数分别转换成八进制数:(111111)2,(63)10,(3F)16 解:结果都为(77)8 解:结果都为(FF)16 1.8转换下列各数,要求转换后保持原精度: (0110.1010)余3循环BCD码=(1.1110)2 1.9用下列代码表示(123)10,(1011.01)2: 解:(1)8421BCD码: (123)10=(0001 0010 0011)8421BCD (1011.01)2=(11.25)10=(0001 0001.0010 0101)8421BCD (2)余3 BCD码 (123)10=(0100 0101 0110)余3BCD (1011.01)2=(11.25)10=(0100 0100.0101 1000)余3BCD (1)按二进制运算规律求A+B,A-B,C×D,C÷D, (2)将A、B、C、D转换成十进制数后,求A+B,A-B,C×D,C÷D,并将结果与(1)进行比较。 A-B=(101011)2=(43)10 C÷D=(1110)2=(14)10 (2)A+B=(90)10+(47)10=(137)10 A-B=(90)10-(47)10=(43)10 C×D=(84)10×(6)10=(504)10 C÷D=(84)10÷(6)10=(14)10 两种算法结果相同。

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

系统设计实验报告

系统设计实验报告——远程在线考试系统

目录软件需求说明书························1 引言··························· 1.1编写目的······················· 1.2背景························· 1.3定义························· 1.4参考资料······················· 2 程序系统的结构························ 3 程序设计说明·························

1引言 1.1编写目的 本文档的编写目的是为远程在线考试系统项目的设计提供: a.系统的结构、设计说明; b.程序设计说明; c. 程序(标识符)设计说明 1.2背景 随着网络技术的飞速发展,现在很多的大学及社会上其它的培训部门都已经开设了远程教育,并通过计算机网络实现异地教育。但是,远程教育软件的开发,就目前来说,还是处于起步的阶段。因此,构建一个远程在线考试系统,还是有很大的实际意义的。 根据用户提出的需求,本项目组承接该系统的开发工作 a.开发软件系统的名称:远程在线考试系统 b.本项目的任务提出者:福州大学软件学院 c.用户:各类大专院校学校、中小学校。 1.3定义 远程在线考试系统 远程在线考试系统是基于用Browser/Web模式下的,可以实现考试题库管理、多用户在线考试、自动阅卷功能的系统。

1.4参考资料 ?GB 8566 计算机软件开发规范 ?GB 8567 计算机软件产品开发文件编制指南?软件设计标准 ?《ASP与SQL-Server2000》清华大学出版社?《可行性研究报告》 ?《项目计划文档》 ? 2程序系统的结构 3程序1(标识符)设计说明

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知 b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异 或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能, 并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构 成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表达式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)( ⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。 用3线—8线译码器(74L138)和逻辑门设计实现函数 CBA A B C A B C A B C F +++= 设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块

数字系统设计

第一次作业 EDA 的英文全称是什么EDA 的中文含义是什么 答:ED自动化A 即Electronic Design Automation 的缩写,直译为:电子设计。 什么叫 EDA 技术利用 EDA 技术进行电子系统的设计有什么特点 答:EDA 技术有狭义和广义之分,狭义EDA 技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC 自动设计技术。 ①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。 从使用的角度来讲,EDA 技术主要包括几个方面的内容这几个方面在整个电子系统的设计中分别起什么作用 答:EDA 技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。其中,硬件描述语言是重点。对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解VHDL 的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了VHDL 语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。对于实验开发系统,主要能够根据自己所拥有

数字秒表的设计与实现实验报告

电子科技大学《数字秒表课程设计》 姓名: xxx 学号: 学院: 指导老师:xx

摘要 EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。该设计具有外围电路少、集成度高、可靠性强等优点。通过数码管驱动电路动态显示计时结果。给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。 关键词:FPGA, VHDL, EDA, 数字秒表

目录 第一章引言 (4) 第二章设计背景 (5) 2.1 方案设计 (5) 2.2 系统总体框图 (5) 2.3 -FPGA实验板 (5) 2.4 系统功能要求 (6) 2.5 开发软件 (6) 2.5.1 ISE10.1简介 (6) 2.5.2 ModelSim简介 (6) 2.6 VHDL语言简介 (7) 第三章模块设计 (8) 3.1 分频器 (8) 3.2 计数器 (8) 3.3 数据锁存器 (9) 3.4 控制器 (9) 3.5 扫描控制电路 (10) 3.6 按键消抖电路 (11) 第四章总体设计 (12) 第五章结论 (13) 附录 (14)

第一章引言 数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

数字系统设计-参考模板

第一次作业 1.1 EDA 的英文全称是什么?EDA 的中文含义是什么? 答:ED自动化A 即 Electronic Design Automation 的缩写,直译为:电子设计。 1.2什么叫 EDA 技术?利用 EDA 技术进行电子系统的设计有什么特点? 答:EDA 技术有狭义和广义之分,狭义 EDA 技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为 IES/ASIC 自动设计技术。①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。 1.3从使用的角度来讲,EDA 技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用?

答:EDA 技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。其中,硬件描述语言是重点。对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解 VHDL 的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了 VHDL 语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。对于实验开发系统,主要能够根据自己所拥有的设备,熟练地进行硬件验证或变通地进行硬件验证。 1.4 什么叫可编程逻辑器件(简称 PLD)? FPGA 和 CPLD 的中文含义分别是什么?国际上生产FPGA/CPLD 的主流公司,并且在国内占有较大市场份额的主要有哪几家?其产品系列有哪些?其可用逻辑门/等效门数大约在什么范围? 答:可编程逻辑器件(简称 PLD)是一种由用户编程以实现某种 逻辑功能的新型逻辑器件。 FPGA 和 CPLD 分别是现场可编程 门阵列和复杂可编程逻辑器件的简称。国际上生产 FPGA/CPLD 的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice 三家公司。Xilinx 公司的 FPGA 器件有 XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200 系列 等,可用门数为 1200~18 000;Altera 公司的 CPLD 器件有

数字电路与系统设计实验报告

数字电路与系统设计实验报告 学院: 班级: 姓名:

实验一基本逻辑门电路实验 一、实验目的 1、掌握TTL与非门、与或非门和异或门输入与输出之间的逻辑关系。 2、熟悉TTL中、小规模集成电路的外型、管脚和使用方法。 二、实验设备 1、二输入四与非门74LS00 1片 2、二输入四或非门74LS02 1片 3、二输入四异或门74LS86 1片 三、实验内容 1、测试二输入四与非门74LS00一个与非门的输入和输出之间的逻辑关系。 2、测试二输入四或非门74LS02一个或非门的输入和输出之间的逻辑关系。 3、测试二输入四异或门74LS86一个异或门的输入和输出之间的逻辑关系。 四、实验方法 1、将器件的引脚7与实验台的“地(GND)”连接,将器件的引脚14与实验台的十5V连接。 2、用实验台的电平开关输出作为被测器件的输入。拨动开关,则改变器件的输入电平。 3、将被测器件的输出引脚与实验台上的电平指示灯(LED)连接。指示灯亮表示输出低电平(逻辑为0),指示灯灭表示输出高电平(逻辑为1)。 五、实验过程 1、测试74LS00逻辑关系 (1)接线图(图中K1、K2接电平开关输出端,LED0是电平指示灯) (2)真值表 2、测试74LS02逻辑关系

(1)接线图 (2)真值表 3、测试74LS86逻辑关系接线图 (1)接线图 (2)真值表 六、实验结论与体会 实验是要求实践能力的。在做实验的整个过程中,我们首先要学会独立思考,出现问题按照老师所给的步骤逐步检查,一般会检查处问题所在。实在检查不出来,可以请老师和同学帮忙。

实验二逻辑门控制电路实验 一、实验目的 1、掌握基本逻辑门的功能及验证方法。 2、掌握逻辑门多余输入端的处理方法。 3、学习分析基本的逻辑门电路的工作原理。 二、实验设备 1、基于CPLD的数字电路实验系统。 2、计算机。 三、实验内容 1、用与非门和异或门安装给定的电路。 2、检验它的真值表,说明其功能。 四、实验方法 按电路图在Quartus II上搭建电路,编译,下载到实验板上进行验证。 五、实验过程 1、用3个三输入端与非门IC芯片74LS10安装如图所示的电路。 从实验台上的时钟脉冲输出端口选择两个不同频率(约7khz和14khz)的脉冲信号分别加到X0和X1端。对应B和S端数字信号的所有可能组合,观察并画出输出端的波形,并由此得出S和B(及/B)的功能。 2、实验得真值表

数字系统设计软件实验报告

实验一QuartusⅡ9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用; 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验流程: 1、仔细阅读书上的操作指南,学会在QuartusⅡ9.1中创建新的工程,创建过程如下所示: 1)、建立新设计项目: ①启动QuartusⅡ9.1软件,在软件的管理器窗口选File下拉菜单,即File→New Project Wizard,则出现新建工程向导窗口。如下所示: ②点击Next按钮,将弹出新建工程设置窗口,如下图所示。在新建工程设置窗口中设置好工程的存放路径、工程名称等。

③点击Next进入添加文件窗口,如下图。由于尚未创建文件,跳过该步骤。 ④点击Next按钮,进入选择目标芯片窗口。在这里我们选择Cyclone系列的EP1C6Q240C8,如下图:

⑤点击Next按钮,进入EDA工具设置窗口,通常选择默认的“None”,表示选择QuartusⅡ自带的仿真器和综合器。如下图: ⑥点击Next按钮,弹出New Project Wizard概要对话框,在这个窗口中列出了所有前面设置的结果。若有错误则点击Back回去修改,否则点击Finish结束,即完成新工程的设定工作。如下图:

2)、文本设计输入: ①在QuartusⅡ主界面菜单栏中选择File下拉菜单中的New,弹出新建设计文件窗口,选择VHDL File项,点击OK按钮即可打开VHDL文本编辑窗口,其默认文件名为“Vhdl.vhd”。 ②出现文本编辑窗口后,我们可以直接在空白界面中键入所设计的VHDL文本。这时我们将书本中的程序输入到文本编辑环境中去。程序如下: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin

《verilog_数字系统设计课程》(第二版)思考题答案

绪论 1.什么是信号处理电路?它通常由哪两大部分组成? 信号处理电路是进行一些复杂的数字运算和数据处理,并且又有实时响应要求的电路。它通常有高速数据通道接口和高速算法电路两大部分组成。 2.为什么要设计专用的信号处理电路? 因为有的数字信号处理对时间的要求非常苛刻,以至于用高速的通用处理器也无法在规定的时间内完成必要的运算。通用微处理器芯片是为一般目的而设计的,运算的步骤必须通过程序编译后生成的机器码指令加载到存储器中,然后在微处理器芯片控制下,按时钟的节拍,逐条取出指令分析指令和执行指令,直到程序的结束。微处理器芯片中的内部总线和运算部件也是为通用目的而设计,即使是专为信号处理而设计的通用微处理器,因为它的通用性也不可能为某一特殊的算法来设计一系列的专用的运算电路而且其内部总线的宽度也不能随便的改变,只有通过改变程序,才能实现这个特殊的算法,因而其算法速度也受到限制所以要设计专用的信号处理电路。 3.什么是实时处理系统? 实时处理系统是具有实时响应的处理系统。 4.为什么要用硬件描述语言来设计复杂的算法逻辑电路? 因为现代复杂数字逻辑系统的设计都是借助于EDA工具完成的,无论电路系统的仿真和综合都需要掌握硬件描述语言。 5.能不能完全用C语言来代替硬件描述语言进行算法逻辑电路的设计? 不能,因为基础算法的描述和验证通常用C语言来做。如果要设计一个专用的电路来进行这种对速度有要求的实时数据处理,除了以上C语言外,还须编写硬件描述语言程序进行仿真以便从电路结构上保证算法能在规定的时间内完成,并能通过与前端和后端的设备接口正确无误地交换数据。 6.为什么在算法逻辑电路的设计中需要用C语言和硬件描述语言配合使用来提高设计效率? 首先C语言很灵活,查错功能强,还可以通过PLI编写自己的系统任务,并直接与硬件仿真器结合使用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比Verilog HDL更完整,此外,C语言有可靠地编译环境,语法完备,缺陷缺少,应用于许多的领域。比较起来,Verilog语言只是针对硬件描述的,在别处使用并不方便。而用Verilog的仿真,综合,查错等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以只有在C语言的配合使用下,Verilog才能更好地发挥作用。C 语言与Verilog HDL语言相辅相成,互相配合使用。这就是即利用C语言的完整性又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

数字电路与系统设计课后习题答案

1、1将下列各式写成按权展开式: (352、6)10=3×102+5×101+2×100+6×10-1 (101、101)2=1×22+1×20+1×2-1+1×2-3 (54、6)8=5×81+54×80+6×8-1 (13A、4F)16=1×162+3×161+10×160+4×16-1+15×16-2 1、2按十进制0~17的次序,列表填写出相应的二进制、八进制、十六进制数。 解:略 1、3二进制数00000000~11111111与0000000000~1111111111分别可以代表多少个数?解:分别代表28=256与210=1024个数。 1、4将下列个数分别转换成十进制数:(1111101000)2,(1750)8,(3E8)16 解:(1111101000)2=(1000)10 (1750)8=(1000)10 (3E8)16=(1000)10 1、5将下列各数分别转换为二进制数:(210)8,(136)10,(88)16 解:结果都为:(10001000)2 1、6将下列个数分别转换成八进制数:(111111)2,(63)10,(3F)16 解:结果都为(77)8 1、7将下列个数分别转换成十六进制数:(11111111)2,(377)8,(255)10 解:结果都为(FF)16 1、8转换下列各数,要求转换后保持原精度: 解:(1、125)10=(1、0010000000)10——小数点后至少取10位 (0010 1011 0010)2421BCD=(11111100)2 (0110、1010)余3循环BCD码=(1、1110)2 1、9用下列代码表示(123)10,(1011、01)2: 解:(1)8421BCD码: (123)10=(0001 0010 0011)8421BCD (1011、01)2=(11、25)10=(0001 0001、0010 0101)8421BCD (2)余3 BCD码 (123)10=(0100 0101 0110)余3BCD (1011、01)2=(11、25)10=(0100 0100、0101 1000)余3BCD 1、10已知A=(1011010)2,B=(101111)2,C=(1010100)2,D=(110)2 (1)按二进制运算规律求A+B,A-B,C×D,C÷D, (2)将A、B、C、D转换成十进制数后,求A+B,A-B,C×D,C÷D,并将结果与(1)进行比较。解:(1)A+B=(10001001)2=(137)10 A-B=(101011)2=(43)10 C×D=(111111000)2=(504)10 C÷D=(1110)2=(14)10 (2)A+B=(90)10+(47)10=(137)10 A-B=(90)10-(47)10=(43)10 C×D=(84)10×(6)10=(504)10 C÷D=(84)10÷(6)10=(14)10 两种算法结果相同。 1、11试用8421BCD码完成下列十进制数的运算。 解:(1)5+8=(0101)8421BCD+(1000)8421BCD=1101 +0110=(1 0110)8421BCD=13

基于FPGA的现代数字系统设计实验报告

****大学 实验报告 课程名称:基于FPGA的现代数字系统设计 实验名称:基于HDL十进制计数显示系统设置 姓名: 学号: 班级: 指导教师: ****大学信息工程学院制

基于HDL十进制计数显示系统设置 一、实验要求 1.设计具有异步复位,同步使能的十进制计数器,其计数结果通过七段数码管,发光二极管等进行显示。 2.主要设计的模块有十进制计数模块和数码管驱动模块以及消抖模块。 3.需要将按键输入的时钟,然后通过消抖模块消抖后,再输出至后续使用。 4.共阴极数码管驱动。 二、实验原理 本次的设计是一个具有数显输出的十进制计数器。示意图如2.1所示。 图2.1 七段数码管属于数码管的一种,是由7段二极管组成。按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。本实验使用共阴数码管。它是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。 显示译码器,用HDL语言判断CLK的上升沿信号,每次收到一次上升沿信号,计数器的值加一并显示在数码管上,所以本次实验会将十进制计数与七段数码管的显示分别写在两个模块里面。 系统模块划分及引脚连线图如下:

三、实验步骤(设计输入) 1.十进制计数器模块 module cnt10(clk,clr,ena,sum,cout); input clk,clr,ena; output [3:0] sum; output cout; reg [3:0] sum; reg cout; always @ (posedge clk or posedge clr) if(clr==1) begin sum <= 4'b0000; cout<= 1'b0;end else if(ena==1'b1) if(sum==4'b1001) begin sum <= 4'b0000; cout<= 1'b1; end else begin sum <= sum+1; cout<= 1'b0; end else begin sum <= sum; cout<= cout; end Endmodule 程序主要思路是用always等待clk与clr的上升沿信号,因为是异步清零所以在always 中也要等待clr的清零信号。用if语句判断clr信号,为1则清零。判断ena信号,为1进行计数操作,为0输出保持不变。计数中,判断sum的值如果为9时,进行进位操作,并将sum值赋值为0 2.数码管驱动模块 module led7 (sum ,out ); input [3:0] sum; output [6:0] out; reg [6:0] out ; always @(sum) begin out = {7{1'b0}};

操作系统课程设计实验报告proj2

操作系统课程设计报告 班级: 团队成员:

目录 ................................................................................................................ 错误!未定义书签。 一、实验要求:建立线程系统................................................................... 错误!未定义书签。 1.1Task 2.1实现文件系统调用 (3) 1.1.1题目要求 (3) 1.1.2题目分析与实现方案 (3) 1.1.3关键点与难点 (4) 1.1.4实现代码 (4) 1.2 Task 2.2 完成对多道程序的支持 (5) 1.2.1题目要求 (5) 1.2.2题目分析与实现方案 (5) 1.2.3关键点与难点 (6) 1.2.4实现代码 (7) 1.3 Task 2.3 实现系统调用 (7) 1.3.1题目要求 (7) 1.3.2题目分析与实现方案 (8) 1.3.3关键点与难点 (9) 1.3.4实现代码 (9) 1.4 Task 2.4 实现彩票调度 (10) 1.4.1题目要求 (10) 1.4.2题目分析与实现方案 (10) 1.4.3关键点与难点 (11) 1.4.4实现代码 (11) 二、测试结果............................................................................................ 2错误!未定义书签。

系统设计实验报告

电子商务系统分析与设计 系统设计

目录第三章系统设计 3.1电子商务系统总体结构设计 3.1.1系统边界 3.1.2 系统组成结构

3.1.3 系统模块结构设计 根据系统的功能,对前台功能和后台功能模块分别进行分析: 前台用户模块 主要包括古越文化品读,商品信息查看,分类展示,商品查询,用户 注册,用户登录,用户购买商品等8个主要模块。 前台用户模块如图所示: 前台功能模块 最新商品 商品展示 商品查询 商品购买 古越文化展示 用户注册 用户登录

用户前台模块图

后台功能模块 管理员模块的主要功能是实现对文静电子商城网站的维护和管理,如商品的添加、修改、删除等管理操作;商品大类的添加、查看、删除、修改等管理操作;管理员的管理;用户的管理;订单的管理等操作。管理员功能结构如图所示。 管理员功能模块图 商品管理模块 管理员管理模块 文化展示模块 用户管理模块 订单管理模块 商品添加 商品修改 商品删除 管理员添加 管理员修改 管理员删除 文化展示删除 文化展示修改 文化展示添加 用户修改 用户删除 后台管理员管理功能模块图 3.1.4 系统功能模块间的关系 公司职员 用户 订单及结算信息 3.1.5 系统总体机构图 3.2网络基础设施

3.2.1系统运行环境 服务器:主流计算机服务器 如Dell PowerEdge R710 操作系统:Windows Server 2003 Web服务器:IIS6.0 数据库: Microsoft SQL Server 2005 3.2.2硬件环境 CPU:2.0GHZ以上 内存:2G MB以上 硬盘:160G以上 3.2.3安全选择 电子支付系统中的安全设计: (1)用户与商家间的信息安全——采用数字信封与数字签名技术 (2)商家与银行间的信息安全——采用数字信封与数字签名技术 (3)用户与银行间的信息安全——采用数字信封与数字签名技术 (4)用户、商家、银行之间的信息安全——双签名技术

传统数字电路设计方案方法与现代数字电路设计方法比较.doc

传统数字电路设计方法与现代数字电路设计方法比较 专业: 姓名:学号: 摘要:本文对7段数码管显示功能设计分别采用传统数字电路和现代数字电路fpga(verilog hdl)实现。并对设计流程进行对比,从而得出各个方法的优劣。 关键字:7段数码管显示;传统数字电路;现代数字电路fpga 1.数字系统设计方法 传统的数字系统的设计方法是画出逻辑图,这个图包含SSI的门和MSI的逻辑功能,然后人工通过真值表和通过卡诺图进行化简,得到最小的表达式,然后在基于TTL的LSI芯片上实现数字逻辑的功能。 现代的数字系统设计是使用硬件描述语言(Hardware Description Language, HDL)来设计数字系统。最广泛使用的HDL语言是VHDL和Verilog HDL。这些语言允许设计人员通过写程序描述逻辑电路的行为来设计数字系统。程序能用来仿真电路的操作和在CPLD、FPGA 或者专用集成电路ASIC上综合出一个真正的实现 2.传统数字系统设计。 1.1 设计流程 传统的数字系统设计基于传统的“人工”方式完成,当设计目标给定后,给出设计目标的真 值表描述,然后使用卡诺图对真值表进行化简,得到最小的表达式,然后使用TTL的LSI 电路实现最小的表达式,最后使用调试工具和仪器,对系统进行调试。

1.2 功能实现 1)设计目标:在一个共阳极的7段数码管上显示相对应的0-F的值。 2)设计目标的真值表描述:图1.2首先给出了七段数码管的符号表示,当其是共阳极时,只有相应的段给低电平‘0’时,该段亮,否则灭。 3)使用卡诺图对真值表进行化简,7段数码管e段的卡诺图化简过程如图。

数字电路组合逻辑电路设计实验报告

实验三组合逻辑电路设计(含门电路功能测试)

一、实验目的 1.掌握常用门电路的逻辑功能 2.掌握小规模集成电路设计组合逻辑电路的方法 3.掌握组合逻辑电路的功能测试方法 二、实验设备与器材 Multisim 、74LS00 四输入2与非门、示波器、导线 三、实验原理 TTL集成逻辑电路种类繁多,使用时应对选用的器件做简单逻辑功能检查,保证实验的顺利进行。 测试门电路逻辑功能有静态测试和动态测试两种方法。静态测试时,门电路输入端加固定的高(H)、低电平,用示波器、万用表、或发光二极管(LED)测出门电路的输出响应。动

态测试时,门电路的输入端加脉冲信号,用示波器观测输入波形与输出波形的同步关系。 下面以74LS00为例,简述集成逻辑门功能测试的方法。74LS00为四输入2与非门,电路图如3-1所示。74LS00是将四个二输入与非门封装在一个集成电路芯片中,共有14条外引线。使用时必须保证在第14脚上加+5V电压,第7脚与底线接好。 整个测试过程包括静态、动态和主要参数测试三部分。 表3-1 74LS00与非门真值表 1.门电路的静态逻辑功能测试 静态逻辑功能测试用来检查门电路的真值表,确认门电路的逻辑功能正确与否。实验时,可将74LS00中的一个与非门的输入端A、B分别作为输入逻辑变量,加高、低电平,观测输出电平是否符合74LS00的真值表(表3-1)描述功能。 测试电路如图3-2所示。试验中A、B输入高、低电平,由数字电路实验箱中逻辑电平产生电路产生,输入F可直接插至逻辑电平只是电路的某一路进行显示。

仿真示意 2.门电路的动态逻辑功能测试 动态测试用于数字系统运行中逻辑功能的检查,测试时,电路输入串行数字信号,用示波器比较输入与输出信号波形,以此来确定电路的功能。实验时,与非门输入端A加一频率为

数字系统设计

东南大学自动化学院 《数字系统课程设计》 专业综合设计报告 姓名:_________________________ 学号: 专业:________________________ 实验室: 组别:______________________同组人员: 设计时间:年月日 评定成绩: _____________________ 审阅教师:

一.课程设计的目的与要求 二.原理设计 三.架构设计 四.方案实现与测试 五.分析与总结

专业综合设计的目的与要求(含设计指标) 主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过, 在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄 灯亮则给行驶中的车辆有时间行驶到禁行线之外。 主干道和乡村公路都安装了传感器, 检测 车辆通行情况,用于主干道的优先权控制。 设计任务与要求 (1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。 (2)当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通 行,让乡村公路通行。主干道最短通车时间为 25s 。 (3)当乡村公路和主干道都有车时,按主干道通车 25s ,乡村公路通车 16s 交替进行。 ( 4)不论主干道情况如何,乡村公路通车最长时间为 16s 。 (5)在每次由绿灯亮变成红灯亮的转换过程中间,要亮 5s 时间的黄灯作为过渡。 (6)用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极 管作交通灯。 要求显示时间,倒计时。 . 原理设计(或基本原理) HDL 语言,用ONEHOTI 犬态机编码表示交通灯控制器的四个状态(状态 0010,状态三: 0100,状态四: 1000): 设置两个外部控制条件:重置( set );乡村干道是否有车( c —— c=1 表示无车; c=0 表示有 车) 设置一个内部控制条件: 时间是否计满 ( state —— state=0 表示计数完成; state=1 表示计 数没有完成) 本设计采用 Verilog : 0001,状态二: 主干道红灯,显示 5 秒;乡村干道黄灯,显示 5 秒——( 0001) 主干道红灯,显示 21 秒;乡村干道绿灯,显示 16 秒——( 0010) 主干道黄灯,显示 5 秒;乡村干道红灯,显示 5 秒——( 0100) 主干道绿灯,显示 25 秒;乡村干道红灯,显示 30 秒——( 1000)

相关主题
文本预览
相关文档 最新文档