数字电路设计实验vhdl语言实验报告.docx
《数字电路设计实验vhdl语言实验报告.docx》由会员分享,可在线阅读,更多相关《数字电路设计实验vhdl语言实验报告.docx(35页珍藏版)》请在冰点文库上搜索。
数字电路设计实验vhdl语言实验报告
实验一秒表计数器的设计
一、实验目的:
本实验通过设计四种频率可选的数字时钟系统,以到达熟悉VHDL语言编程语法、设计思路和熟练掌握QuartusII开发软件的目的。
二、实验内容:
该数字时钟的显示格式如下所示:
HH:
MM:
SS,其中HH表示时计数的两位,MM表示分计数的两位,SS表示秒计数的两位。
本系统输入信号分别为复位信号rst(高有效)、sel(两位信号,分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位表示的低半字节,譬如当时间为08:
59:
30时,时输出为〞0000_1000〞,分输出为〞0101_1001〞,秒输出为〞0011_0000〞)。
该时钟系统可以通过Sel信号时钟运行的快慢。
三、实验流程:
通过对实验内容的分析:
可以考虑时钟系统的可由三局部组成:
1、分频器:
分频器为时序电路并且通过?
数字电路?
理论课程的学习可知由计数器来实现,同学可以回想一下实验1中是如何实现计数器电路的设计〕,该模块主要产生2、4、8、16分频的时钟信号;
2、多路选择器:
在VHDL中多路选择器为组合逻辑,可以有多种实现方法,在这里主要选用了case语句来实现。
该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;
3、时钟控制器:
该模块比拟复杂,主要实现功能是实现一个24小时的计时。
当时间为00:
00:
59的时候下一个时钟到来时状态的跳变为00:
01:
00,计时中多数计数为加1操作,有几个特殊状态需要重点考虑:
当时间产生分进数时,譬如上例。
当时间产生时进数时,譬如00:
01:
59时刻的下一个状态为00:
02:
00;当时间产生时进数时,譬如00:
59:
59是个的下一个状态为01:
00:
00。
当时间产生天进数时,譬如23:
59:
59的下一个状态为00:
00:
00。
四、仿真要求:
本次试验的结果全部采用功能仿真分析:
1、在结果图中能够看到让复位信号rst为有效的情况下,所有的输出为00:
00:
00;
2、当频率选择输出分别为〞00〞、〞01〞、〞10〞、〞11〞时秒为的进数分别包含2、4、8、16倍clk_in的时钟周期;
3、可以看到完整的计时周期00:
00:
00->23:
59:
59->00:
00:
00。
五、实验代码:
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityfpgais
port(
clk_in:
instd_logic;
rst:
instd_logic;
sel:
instd_logic_vector(1downto0);
hour_high_out:
outstd_logic_vector(3downto0);
hour_low_out:
outstd_logic_vector(3downto0);
minute_high_out:
outstd_logic_vector(3downto0);
minute_low_out:
outstd_logic_vector(3downto0);
second_high_out:
outstd_logic_vector(3downto0);
second_low_out:
outstd_logic_vector(3downto0)
);
endfpga;
architecturebehaoffpgais
signalclk:
std_logic;
signalclk_cnt:
std_logic_vector(3downto0);
signalhour_high:
std_logic_vector(3downto0);
signalhour_low:
std_logic_vector(3downto0);
signalminute_high:
std_logic_vector(3downto0);
signalminute_low:
std_logic_vector(3downto0);
signalsecond_high:
std_logic_vector(3downto0);
signalsecond_low:
std_logic_vector(3downto0);
begin
process(rst,clk_in)
begin
if(rst='1')then
clk_cnt<="0000";
elsif(rising_edge(clk_in))then
clk_cnt<=clk_cnt+1;
endif;
endprocess;
process(sel)
begin
caseselis
when"00"=>clk<=clk_cnt(0);
when"01"=>clk<=clk_cnt
(1);
when"10"=>clk<=clk_cnt
(2);
when"11"=>clk<=clk_cnt(3);
whenothers=>clk<='0';
endcase;
endprocess;
process(clk,rst)
begin
if(rst='1')then
hour_high<="0000";
hour_low<="0000";
minute_high<="0000";
minute_low<="0000";
second_high<="0000";
second_low<="0000";
elsif(rising_edge(clk))then
if(second_low/="1001")then
second_low<=second_low+1;
else
if(second_high/="0101")then
second_high<=second_high+1;
else
second_high<="0000";
if(minute_low/="1001")then
minute_low<=minute_low+1;
else
if(minute_high/="0101")then
minute_high<=minute_high+1;
else
minute_high<="0000";
if((hour_low/="0011")and((hour_high/="0010")or(hour_low/="1001")))then
hour_low<=hour_low+1;
else
hour_low<="0000";
if(hour_high="0010"andhour_low="0011")then
hour_high<="0000";
else
hour_high<=hour_high+1;
endif;
endif;
endif;
minute_low<="0000";
endif;
endif;
second_low<="0000";
endif;
endif;
endprocess;
process(clk)
begin
hour_high_out<=hour_high;
hour_low_out<=hour_low;
minute_high_out<=minute_high;
minute_low_out<=minute_low;
second_high_out<=second_high;
second_low_out<=second_low;
endprocess;
endbeha;
1、六、实验结果分析:
在结果图中能够看到让复位信号rst为有效的情况下,所有的输出为00:
00:
00;
2、当频率选择输出分别为〞00〞、〞01〞、〞10〞、〞11〞时秒为的进数分别包含2、4、8、16倍clk_in的时钟周期;
二分频图
四分频图
八分频图
十六分频图
3、可以看到完整的计时周期00:
00:
00->23:
59:
59->00:
00:
00。
七、实验心得
通过上一节课的学习,了解实验软件QuartusII根本的操作方法后,这次的实验就娴熟了很多,实验的设计想法不是很复杂,因为这次要求是实现偶数分频以及计数功能。
这次实验老师给定了代码的模板,给我们的编写和设计提供了很大的帮助,认真思考原理过后,对以后的更难一些的实验一定会有很大帮助。
实验二奇数分频的模十状态机的设计
一、实验目的:
通过设计频率可选的模十状态机以到达进一步掌握VHDL硬件描述语言的目的。
二、实验流程:
本设计有分频器、多路选择器、状态机。
1.时钟输入作为分频器的输入,输出时钟分别为3分频和5分频;
2.分频器输出由2选1的多路选择器选择其中之一作为状态机的时钟输入;
3.使用选中的时钟频率作为输入时钟驱动状态机按照以下的次序输出:
0->A->5->6->1->F->4->8->E->3->0的顺序输出。
三、实验代码:
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitycounteris
port(clk:
instd_logic;
rst:
instd_logic;
clk_div:
outstd_logic;
sel:
instd_logic_vector(0downto0);
out1:
outstd_logic_vector(3downto0));
endcounter;
architectureBehavioralofcounteris
signalshangsheng:
std_logic_vector(2downto0);
signalcount1:
std_logic_vector(2downto0);
signalcount2:
std_logic_vector(2downto0);
signallevel_div3:
std_logic;
signalnow_state:
std_logic_vector(3downto0);
signalnext_state:
std_logic_vector(3downto0);
begin
process(sel)
begin
caseselis
when"0"=>shangsheng<="010";
when"1"=>shangsheng<="100";
endcase;
endprocess;
p1:
process(clk)
begin
if(clk'eventandclk='1')then
if(count2=shangsheng)then
count2<="000";
else
count2<=count2+1;
endif;
endif;
endprocessp1;
p2:
process(clk)
begin
if(clk'eventandclk='0')then
if(count1=shangsheng)then
count1<="000";
else
count1<=count1+1;
endif;
endif;
endprocessp2;
level_div3<=count1
(1)orcount2
(1);
clk_div<=level_div3;
Process(rst,clk)
begin
if(rst='1')then
now_state<="0000";
elsif(level_div3'eventandlevel_div3='1')then
now_state<=next_state;
endif;
endprocess;
process(now_state)
begin
casenow_stateis
when"0000"=>next_state<="1010";
when"1010"=>next_state<="0101";
when"0101"=>next_state<="0110";
when"0110"=>next_state<="0001";
when"0001"=>next_state<="1111";
when"1111"=>next_state<="0100";
when"0100"=>next_state<="1000";
when"1000"=>next_state<="1110";
when"1110"=>next_state<="0011";
when"0011"=>next_state<="0000";
whenothers=>next_state<="0000";
endcase;
endprocess;
out1<=now_state;
endBehavioral;
四、实验结果分析:
1、通过实验结果,rst有效时,所有的状态为零。
三分频
五、实验心得
这次实验做的是模十的状态机,利用奇数数分频,这个代码编写起来比拟麻烦,不过有了上次编写偶数分频的经验,就容易多了,实现奇数分频需要将两个偶数分频相或,有了这样的思路,编写起来就简单了很多。
通过这3次的实验,让我对数字电路这门课程的理解更加透彻了,也熟悉了QuartusII,相信对我以后的学习会有很大帮助。
亲爱的朋友,上文已完,为感谢你的阅读,特加送另一篇范文,
如果下文你不需要,可以下载后编辑删除,谢谢!
道路施工方案
1、工程概况
2、编制说明及编制依据
3、主要施工方法及技术措施
3.1施工程序
3.2施工准备
3.3定位放线
3.4土方开挖
3.5卵石路基施工
3.6天然砾基层施工
3.7高强聚酯土工格楞
3.8水泥稳定砂砾基层施工
3.9路缘石施工
3.10玻璃纤维土工格栅施工
3.11沥青面层施工
3.12降水施工
4、质量控制措施
5、雨季施工安排
6、平安技术措施
1.工程概况
本工程建设的厂址位于新疆石河子市。
工程场地位于石河子高新技术开发区经七路西。
场地原为麦田,地势南高北低。
厂区道路连通各装置区域,并与经七路相连。
2.编制说明及编制依据
为保质按时顺利完成厂区道路,根据工程施工招标文件、设计施工图,以及现场实际场地,并结合我公司多年来的现场施工经验编制此方案。
标准及标准:
?
沥青路面施工技术质量标准?
JTGF40-2004
?
工程测量标准?
GB50026-2007
?
建筑施工平安检查标准?
JGJ59-1999;
3.主要施工方法及技术措施
降水——施工测量——土方开挖——路基〔卵石〕整平——机械压实——天然砂砾基层——机械压实——高强聚酸土工格楞——浆砌卵石立缘石根底——水泥砂浆勾鏠——天然砂砾基层——机械压实——安装路缘石——水泥稳定砂砾底基层——玻璃纤维土工格楞——粗粒式沥青混凝土面层——中粒式沥青混凝土面层
熟悉图纸及标准,做好技术交底工作。
按图纸范围确定施工范围,标出外框范围线,清出障碍物。
联系施工需用材料、机械的进场工作。
根据业主提供的平面控制坐标点与水准控制点进行引测。
根据施工图规定的道路工程坐标点,进行测量放样的业内复合计算。
根据现场实际情况,在道路两侧沿线间隔50m左右布置测量控制桩,轴线定位〔坐标〕桩与高程测量控制桩合用。
控制点沿道路中心线两侧交错间隔布置,形成多个控制体系,同时控制桩做醒目标志,以防在施工过程中被碰动。
土方施工后,测量人员应及时重新放线,路基处理后,应在路基上测定路面中心线、边界线以及标高控制点。
其根本步骤为:
校验路基轴线控制桩;合格后,根据轴线控制桩详细放出路边线以及设置标高控制桩。
放线自检和业主监理验收前方可使用。
验线允许偏差根据标准规定。
3.4土方开挖
施工方法:
在施工测量放线确定根底位置,经检查复核无误后,作为施工控制的依据,并经过监理确认后,即可进行根底土石方的开挖。
主要施工机具:
挖掘机、装载机、尖、平头铁锹等。
3.4.1作业条件:
土方开挖前,应摸清地下管线等障碍物,以及地下水位等情况,并应将施工区域内的地下障碍物去除和处理完毕。
道路的定位控制线〔桩〕,标准水平桩及基槽的灰线尺寸,必须经过共同检验合格,并办完预检手续。
考虑在机械无法作业的部位和修整边坡坡度采用人工进行施工。
熟悉图纸,做好技术交底。
索取地勘资料及气象资料。
夜间施工时,应合理安排工序,防止错挖或超挖。
施工场地应根据需要安装照明设施,在危险地段应设置明显标志。
挖土方流程:
确定开挖的顺序和坡度→沿灰线切出槽边轮廓线→分层开挖→修整槽边→清底。
〔1〕基地坡度剖面图:
现场土质为粉质粘土,开挖深度不超过1.5m可不放坡,不加支撑,挖深度超过1.5m必须放坡,放坡坡度为1:
0.75。
〔2〕开挖基槽:
采用反铲挖土机开挖基槽从槽的端头,以倒退行驶的方法进行开挖,将土方甩到基槽两侧,应保证边坡的稳定。
场地以下耕织土层直接清理现场,剩余好土回填基槽使用。
〔3〕施工要求:
基坑〔槽〕开挖后,不得直接开挖至设计底标高,防止机械开挖扰动地基土层。
在挖到距槽底20cm以内时,测量放线人员应配合抄出距槽底20cm水平线,并在槽壁上每隔3~5m钉水平标高小木桩或短钢筋,在挖至接近槽底标高时0.2m时,用尺或事先量好的20cm标准尺杆,随时以小木桩校核槽底标高。
最后由两端轴线〔中心线〕引桩拉通线,检查距槽边尺寸,确定槽宽标准,据此修整基槽,最后人工去除槽底土方。
土方开挖时应注意边坡稳定。
严禁切割坡脚,以防导致边坡失稳,当边坡坡度陡于五分之一,或在软土地段,不得在挖土上侧堆土。
必要时可适当放缓边坡或设置支撑。
施工时,应加强对边坡、支撑、土堤等的检查。
同时应注意基坑边沿控制线好其他单位设施,防止损伤.
夜间施工时,应有足够的照明设备,在危险地段应设置明显标志,并要合理安排开挖顺序,防止错挖、超挖。
雨期施工在开挖基坑〔槽〕时,应注意边坡稳定,必要时可适当放缓边坡坡度,防止地面水流入。
坚持对边坡进行检查,发现问题要及时处理。
〔4〕应注意控制的质量问题
根底底部土方超深开挖:
开挖基坑〔槽〕或管沟均不得超过基底标高。
如个别地方超挖时,其解决方法应取得设计单位的同意,不得私自处理.基坑开挖中如遇局部地基问题,施工方应及时通知有关各方人员现场共同协商处理,未得到各方任何之前,不得擅自处理。
基坑开挖并清理完,经钎探〔根据当地监理、质检部门要求〕和验槽合格后,方可进行下道工序的施工。
基底未能得到保护:
基坑〔槽〕开挖后应尽量减少对根底底部基土的扰动。
如根底不能及时施工时,可在基底标高以上留出厚土层,待做根底时再挖掉。
开挖尺寸缺乏:
基坑〔槽〕或管沟底部的开挖宽度,除结构宽度外,应根据施工需要增加工作面宽度。
如排水设施、支撑结构所需的宽度,在开挖前均应考虑。
基坑〔槽〕边坡不直不平,基底不平:
应加强检查,随挖随修,并要认真验收。
路基施工是道路施工重点,必须将原地面上各种杂物去除,保证填土外表无积水。
对于压路机不能压到得地方,采用夯机夯实或者人工夯实。
厂区道路路基密实度不小于96%,经检测合格前方可经行后续施工。
本工程采用200厚卵石基层,基层每边比根底宽出270mm。
自卸汽车倒至基槽漂石,反铲挖掘机整平后,压路机压实。
卵石:
采用粒径100-200mm卵石做为底基层。
上层为天然砂砾,水泥稳定砂砾层及粗,中式沥青面层。
3.5.2施工方法
(1)施工测量
施工前对下承层按质量验收标准进行验收之后,恢复中线,直线段每20m设一桩,并在两侧路面边缘0.3-0.5m处设标志桩,在标志桩上用记号笔标出漂石基层边缘设计标高。
(2)整平
卵石入槽后,挖掘机倒退法整平。
进行分层施工,基层的设计厚度为200mm,根据现场实际情况,基底土方含水率较大,为了保证第一层漂石整体均匀性,防止地基翻浆,第一层漂石虚铺厚度400mm,碾压整平后,直接回填天然砂砾,分层碾压至设计标高。
(3)试验取样
选择资质符合要求的试验室进行戈壁分层碾压取样试验。
现场取样每层天然砂砾碾压完成后,由监理单位见证试验室现场对戈壁取样,压实系数要求不小于0.96.取样要求,每1000平方取样两点,缺乏1000平方时按两点取样。
天然砂砾路基施工
天然砂砾应平铺整平后,进行机械碾压。
压路机采用18t内震式。
碾压时先轻后重,先慢后快。
直线段,由两侧路肩向路中心碾压,平曲线段由内侧向外侧进行碾压。
碾压时,主碾重叠不小于30cm。
压路机的碾压速度,头两遍采用1.5-1.7Km/h,以后采2.0-2.5Km/h。
在规定的时间内碾压到要求的压实度,到达没有明显的轮迹。
碾压过程中,如有“弹簧〞、松散、起皮等现象,铲除换填,使其到达质量要求。
分段施工时,上下两层接缝距离为500mm,接缝处夯压密实。
高强聚酯土工格楞
土工格栅选取用聚酯涤纶纤维为原料。
采用经编定向结构,织物中的经纬向纱线相互间无弯曲状态,交叉点用高强纤维长丝捆绑结合起来,形成牢固的结合点,充分发挥其力学性能,高强聚酯土工格栅具有抗拉强度高,延伸力小,抗撕力强度大,纵横强度差异小,耐紫外线老化、耐磨损、耐腐蚀、质轻、与土或碎石嵌锁力强,对增强土体抗剪及补强提高土体的整体性与荷载力,具有显著作用。
土工格栅施工要点:
1、施工场地:
要求压实平整、呈水平状、去除尖刺突起物。
2、格栅铺设:
在平整压实的场地上,安装铺设的格栅其主要受力方向〔纵向〕应垂直于路堤轴线方向,铺设要平整,无皱折,尽量张紧。
用插钉及土石压重固定,铺设的格栅主要受力方向最好是通长无接头,幅与幅之间的连接可以人工绑扎搭接,搭接宽度不小于10cm。
如设置的格栅在两层以上,层与层之间应错缝。
大面积铺设后,要整体调整其平直度。
当填盖一层土后,未碾压前,应再次用人工或机具张紧格栅,力度要均匀,使格栅在土中为绷直受力状态。
3、填料的摊铺和压实:
当格栅铺设定位后,应及时填土覆盖,裸露时间不得超时48小是,亦可采取边铺设边回填的流水作业法。
先在两端摊铺填料,将格栅固定,再向中部推进。
碾压的顺序是先两侧后中间。
碾压时压轮不能直接与筋材接触,未压实的加筋体一般不允许车辆在上面行驶,以免筋材错位。
分层压实度为20-30cm。
压实度必须到达设计要求,