合工大 计算机组成原理.doc
文本预览下载声明
合肥工业大学
计算机与信息学院
课程设计报告
课 程: 计算机设计与综合实践
专业班级: 信息安全11-1
学 号: 姓 名: 王佳淼
2014年11月
摘 要
本文介绍了一种采用进行出租车计器的设计本设计实现了出租车计费器所需的一些基本功能计程模块计费模块
关键词:FPGA(Spartan6-LX45),出租车计价器,Xilinx,Verilog HDL
目录
一、 4
1.1 4
1.2 4
二、 4
2.1 分频模块 4
2.1.1 计数器分频模块(FrequencyDiv1) 5
2.1.2 数码管显示分频模块(FrequencyDiv2) 5
2.2 里程模块(Disatance_Cal模块) 5
2.3 时间模块(Time_Cal模块) 5
2.4 计费模块(Money_Cal模块) 5
2.5 数码管显示模块(LED_Display模块) 6
2.6 顶层模块(Taximeter模块) 7
三、 9
四、 9
附录: 单元模块Verilog HDL源代码 10
1. 计数器的分频模块(Frequency_Div) 10
2. 数码管的分频模块(Frequency_Div_2) 10
3. 里程模块(Distance_Cal) 11
4. 时间模块(Time_Cal) 12
5. 计费模块(Money_Cal) 13
6. 数码管显示模块(LEDDisplay_Cal) 16
7.顶层模块(Taximeter) 18
8. 引脚约束(Taximeter) 20
方案总设计
设计要求
设计一个出租车计价器。该计价器的计费系统:行程 3公里内,且等待累计时间2分钟内,起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟以1.5元计费,并能显示行驶公里数、等待累计时间、总费用。设计有分频模块,控制模块,计量模块,译码模块, 显示模块。
设计思想
出租车的一般计费分类:
近路途未停车状况:车价=起步价【10元】(3里程数 且10等待时间)
近路途有停车状况:车价=起步价【10元】+(等待时间 - 等待累积时间【2分钟】)*1.5(3里程数 且10等待时间)
远路途未停车状况:车价=起步价【10元】+(里程数?-?起步里程数【3公里】)*每公里单价【1.6元】?(3里程数 且10等待时间)???
远路途有停车状况:车价=起步价【14元】+(远程里程标准【10公里】?-?起步里程数【3公里】)*每公里单价【1.6】?+?(等待时间 - 等待累积时间【2分钟】)*1.5?(里程数10 且 10等待时间)
综上所述,完成出租车计费需要,在乘客上车后,需要启动出租车计价器,所以这样就需要一个控制出租车计价器开始工作的使能信号,使得有乘客上车后就要将计价表上显示出起步价10元;而在计价的过程中又需要分两种情况:一种是按增加的里程来收费,另一种是按照停车的时间来收费,因为在出租车行驶的过程中,有可能会遇到堵车或红绿灯的情况,这样会耽误出租车的时间,所以当超过一定标准时间后,就应当计时收费。
软件功能单元设计和实现
本系统采用层次化、模块化的设计方法,设计顺序为自下向上。首先实现系统框图中的各子模块,然后由顶层模块调用各子模块来完成整个系统。为了便于在数码管里显示和演示,这里的路程、时间和费用计数器均用BCD码表示。我主要做的是里程模块,所以2.2里程模块即Disatance_Cal模块详细说明,其余模块只进行大体描述。
2.1 分频模块
这里主要是将实验板上提供的时钟信号进行分频,来得到我们想要的时钟脉冲。因为我们所使用的实验板是Spartan6-LX45 ,它可以提供100MHz的时钟信号,而这个信号对于我们来说实在是太快了,所以我们需要对其进行分频。在本次的设计中,我们需要在两个地方用到不同的分频时钟,一个是在LED显示模块,而另外的几个模块用另一个时钟信号。
2.1.1 计数器分频模块(FrequencyDiv1)
此模块的功能是对总的时钟进行分频,分出的频率是让计数器用的,因为我们使用总的时钟频率是100MHz的,所以我们在设计该模块的时候用了一个32位的计数器,当计数器计到25_000000的时候产生一个时钟信号,提供给里程模块,时间模块,计费模块使用。其实我们是将100MHz分频后变成每一秒计数一次,这也是为了便于实验(在现实生活中不一定是这样)。
2.1.2 数码管显示分频模块(FrequencyDiv2)
此模块产生的脉冲信号是提供给数码管的,因为要显示的数据有六位,所以数码管的扫描频率应该要比计数分频模块更快。我
显示全部