fpga实现数电实验总的实验报告毕业设计论文word格式内容摘要:

舟册前晒胤野台徒锔沙 wire cin。 涑浇别闶娆泡蛔娴掮秽宄 wire [35 : 0] CONTROL0。 蹿怛鞋銮睁岗励恣颓新镇 wire [8 : 0] ASYNC_OUT。 郊钧磕屁檫燧牌迸踅鲔面 wire [4 : 0] ASYNC_IN。 津泻疠费弊锇蛋蛸铗锁断 ICON I_ICON 努椽涂蛏赌吠纳姘胴俘诒 (呦蟹璧鄂刳飙嬉栾舴摞椅 .CONTROL0(CONTROL0)叱咀璃篆缬缲扇拘干劣郝 )。 焯 渌刃岛绵髡念眶攘毪倩 VIO I_VIO 稣椽呲猷戚删跄固苫瓤翻 (钡沥珐郡狯谅互战履巩豹 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 11噔雀砷娩冠骟复髓衩闯米 .CONTROL(CONTROL0), 暴鳊蜓鳆鹚椒舭苤菡匪傅 .ASYNC_OUT(ASYNC_OUT), 承蛸专闰獐挞律猃笔尚抽 .ASYNC_IN(ASYNC_IN)猞翡道逭蓿塍颦伺讹哦亨 )。 钆聚殿衲忌俞氪阂香嫩岗 assign ASYNC_IN[3:0]=sum[3:0]。 浚么馐穹磁肥婀庋槟哔墙 assign ASYNC_IN[4]=cout。 侬佴逡啸坌壮镎桐到纫濞 assign ina=ASYNC_OUT[3:0]。 擎些拚侨旱覆戆百轾阀罢 assign inb=ASYNC_OUT[7:4]。 檐椰孛到柑胎川檑萄诿顼 assign cin=ASYNC_OUT[8]。 昝恰赢铪肠哼鲺秋戟满夕 assign {cout,sum}=ina+inb+cin。 匚碣躲越忆视叉耀泵葆缵 endmodule 筚扩犯廴萼归腻捆慰头蓖 进行保存,然后在 ISE 里进行综合,具体操作步骤:单击 “”,在processes 窗口中双击 “Synthesize—XST”;如果综合没有出错,再实现,双击“Implement Design”,最后生成 bit 文件,双击 “Generate Programming File”。 内饺右铪细张摹且娱府纰 ⑶ 在 ChipScope 里观测调试 夸艋荏汜瘟胁讲梯蛔咄哲 单击 “”,在 Processes 窗口中 选择 双击 “Analyze Design Using Chipscope”进入 ChipScope Pro Analyzer 窗口,点击 图标检查连接情况,然后下载 bit 文件,具体操作步骤:单击菜单栏中的 “Device”,在下拉菜单中选择所用器件, 在所用器件名上右击然后选 “ Configure”,如图 9 所示,在弹出的对话框中单击“ Select New File”,在工程目录中选择“ ”文件单击打开,如图 10 所示, 将 bit 文件下载到板子上,然后打开 VIO Consle 窗口,在这里即可进行观测调试,调试结果如 图 1图 12 所示。 默弈蝥贡蛛啸是赙指示杞 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 12噔雀砷娩冠骟复髓衩闯米 葺墩贸蜩专橘贾颧替佐呛 图 9 操作示意图 6 埔逼杩仄匮接玑忌嬉倚咒 搂僳刺簪竿 �噢戡舟蚶胶 图 10 操作示意图 7 褓碛海惫糸瞠炝霾胪擎痪 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 13噔雀砷娩冠骟复髓衩闯米 篡掠侍愍镪捂貌爪殓渴哒 图 11 调试结果 1 歉硇南穗蹋亻淬楂滗振霓 孪诊缤蜈途鎏惨餮旅饪盼 图 12 调试 结果 2 瘰渗锟庾氮救嗦侠筛莸枝 六、 总结 模现娌垃敲淞绝油乓痂翅 通过本次实验,我的收获如下: 濑邱钆堆柜陔睥无务菏匹 ⑴ 加深了对全加器的认识; 苦娈銎宦轴酯憋衢帽懵揪 ⑵ 了解了 4 位并行相加串行进位全加器的组成原理和组成框图; 廴宋暄挺鏊毅俨乔璃泞鄞 ⑶ 掌握了工程的生成方法,以及如何创建 HDL 资源文件; 您突吖等惜帕荨碛鲐卩福 ⑷ 对 Verilog HDL 语言的用法有了一定的了解; 寰瘢陔潍鸣牟篆创店讥偏 ⑸ 熟悉了模块的声明和模块的例化; 楝纺蒗菩韵骼赐审太轻段 ⑹ 了解了如何进行功能仿真,如何添加激励源; 荟撅啾永 漓就淬约挞旃嫠 ⑺ 了解了 ChipScope 的核生成方法,以及如何将生成的核添加到工程; 发茸匆了哺波嗑丬珩嶂倌 ⑻ 了解了如何使用 ChipScope 进行在线调试,以及怎样观察调试结果。 突赝射眺明涩臣涸睿冱意 实验二 触发器实验 第擞贩教异猊瑚婶露厶燕 一、 实验原理 枧咸偻累愍铛麾噫践忸拌 ⑴ 主从 D 触发器 范汹或戟醐檐蟛裁眨诤怆 图 1 是主从 D 触发器的逻辑图及逻辑符号。 婊烀坳蜥蹋官茜邺夹喹捕 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 14噔雀砷娩冠骟复髓衩闯米 镆侣镓劐今挛髌娲蹴鳐疒 图 1 主从 D 触发器的逻辑图及逻辑符号 脸辑坚税闷潜焦唧蜀碳揸 主从结构的触发器的状态改变是在时钟脉 冲下降沿完成的,因而这种结构的触发器无空翻现象。 若 CP 下降沿前 D=1,则 Qn+1=1;若 CP 下降沿前 D=0,则Qn+1=0。 将瘁菏库时真淼省鳕埯绒 代码如下: 缏麝阜樱吆讼城醋镐煤差 module dtrigger(Q,QB,clk,D)。 士隋扭禾墨蕈纡黼埏搅岬 input clk,D。 廒潘每伟肓烧绥徜已镜康 output Q,QB。 誉铹枪厩涣挤跬阖聪腽镏 reg Q,QB。 鳝潍撺孵槔冠咀安劝莽衔 always @(negedge clk) //clk 下降沿时执行下面 begin—end 间的语句 蒌踔岩痞俚滞个 凯然撬旗 begin 唠屿捩驷乌轲乩萧歉字傻 Q=D。 锱镘沈但貌穆啵赘岐猢跸 QB=~D。 撺藤勿捆缃胡民辞痛倪拇 end 窍裎跃噘万悦棘栓聆鄞咛 endmodule 浏褒瞑榘子鸷心友阪技彦 ⑵ 主从 JK 触发器 砜钾裸妻楂贳蹯郸寤堇湄 主从 JK 触发器的逻辑图及逻辑符号如图 2 所示,其状态转换是在时钟下降沿完成,其真值表如表 1 所示。 棕系倍分棘配开碲亲沪缢 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 15噔雀砷娩冠骟复髓衩闯米 蕖髑闻窍沛鞴讼樘东唾勿 图 2 主从 JK 触发器的逻辑图及逻辑符号 环裁前嗔荔撩饧船菊嗲遛 表 1 主从 JK 触发器的 真值表 懔蓿锂缯硷掣怨窒吸蕺唾 璁粱憔菊费咐迂挣 韩棠瓤 Verilog 代码如下: 胬滇突蛄叵糸钤芝兴顶恪 module JKtrigger(Q,QB,J,K,clk)。 倡岣趴财埘弗丙眨浮皎忱 input J,K,clk。 谏茗宋劲桀囝消苊揽鄹情 output Q,QB。 汞偶吐侔砚葡羟撮侈东岗 reg Q。 拆戟肮蜗夏鼷乍鸷找症穿 assign QB=~Q。 杨蛀倨民噔衡椎鄂私羹国 always@(negedge clk)订满缪佥苁僚熊鹳馗芥隧 begin 鸵旦级瞬恁罘浅账喝镳蛊 case({J,K})凄嗓秧界凶睡磐瘰糈加惦 239。 b00 : Q = Q。 貂僵藿稍典 濒辑灰优舒讪 239。 b01 : Q = 139。 b0。 氏哺蜘庹鞠敬五皓梵盏饺 239。 b10 : Q = 139。 b1。 溪狗羹宾孵漂寞骇洛玫位 239。 b11 : Q = ~Q。 父腾勘八臾噎伐俱收翥癌 default: Q= 139。 bx。 捆蟠擘跟迓葜诔鹰葬搿宛 endcase 缀饺鸸旆芭号硪矬蚊荆吾 end 例灼猁芫榕膏郅樽仿喝薹 endmodule 暹沂柯宠秫黜木褚铀嗳惯 ⑶ JK 触发器转换的 D 触发器 肃麟西耆龊甲爷单纸酷董 JK 触发器转换的 D 触发器 的真值表如表 2 所示。 县扫绷帛筒躺骄吊隍耀阀 凇橱缛戋垄缓酱埏钙罗怏 圆薮 攀舱胫奴拼锣仫堵俞 丙虮踝货黄雨癞绌于谬砻 表 2 JK 触发器转换的 D 触发器的真值表 币痂闪劫箢譬扑傲一昙罾 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 16噔雀砷娩冠骟复髓衩闯米 均落命逭渣瓿浏兢亢妥辉 根据表 2 可写出 J、 K 与 D、 Q 的关系: J=D、 K=~ D。 图 3为 JK 触发器转换的 D 触发器的逻辑图。 饴逮楦阊遄鳏嵘忄弊叉恰 位胚软杷戥涪褂声暾剔惜 图 3 JK 触发器转换的 D 触发器的逻辑图 繇杓析怃吖瘸物宦藉堂拎 Verilog 代码如下: 畴胫惑比延髫钞樾院衍趣 module JKdtrigger(cp,D,Qn,Qnb)。 廑舣盈沤蜻雹韩灞蔟龚伤 input cp, D。 蕾漶抑蚀卩 柜胃镣阁功黄 output Qn,Qnb。 锛斤饕撰肱刳枚溺寓丕沟 wire J,K。 袜帆晗琶洌庸锻赞鋈隳酸 JKtrigger a2(Qn,Qnb,J,K,cp)。 屎懔搋臌籁郦俸运稔袈澜 not a1(K,D)。 示阀浦居晨阀薜驵识扮嘻 assign J=D。 曛卜邓该馑蜚踹漪稗圣氯 endmodule 塔疯肮夼拚黼鲷枇废舭扯 module JKtrigger(Q,QB,J,K,clk)。 差桔熘阋广亮侠胱铲拨藁 input J,K,clk。 鸺碾坯洒卡甓拘坊殪辖罡 output Q,QB。 藓纷飓巢喘纶甜飙困哉潸 reg Q。 勾点炊毁件惭湛汁尔聒纺 assign QB=~Q。 谂你怆逄抟彭诲蛛屿宥障 always@(negedge clk)愣嘶莫镤砗港沃澎鸫淄累 begin 眩镎悛坤恿麋羽述醯牛驯 case({J,K})稀豫迷亍纨燹飕翁筘兮嶝 239。 b00 : Q = Q。 酸弃搔笼包镲孢钐遐缲霏 239。 b01 : Q = 139。 b0。 懈厍谶纤奠腓禽少灭鱿後 239。 b10 : Q = 139。 b1。 优遣椤恫忿盛跤廑庙姚砣 239。 b11 : Q = ~Q。 防娄冤捉蒗碳徘橘顶睦漆 default: Q= 139。 bx。 菲锹就奁凰弈噬怛 蚝韵轭 endcase 噎害侪籍落霾狼辔嘣蒴餐 end 涮姘奔饷骺逞躇播悃侩懂 endmodule 菲末贾垸徊拽挤笙吵德袢 此代码中添加了子模块 JKtrigger();说明了程序写法自上而下的特点。 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 17噔雀砷娩冠骟复髓衩闯米 挽柯赅托小原擐铃齿蜥麈 二、 实验目的 钅弘签岫拧滑榭椤肖究敢 ⑴ 熟悉 开发环境,掌握工程的生成方法; 泅乏藩羊蜞缎票洧茹振筌 ⑵ 熟悉 SEEDXDTK XUPV2 Pro 实验环境; 物恧衤郭纸浑嫠瑭肉竣辋 ⑶ 了解 Verilog HDL 语言在 FPGA 中的使用; 酝藜庖崇奘质患嫉思负巴 ⑷ 了解触发器的 Verilog HDL 语言实现。 搓抠庐才玖庖祥烙谊聚氨 三、 实验内容 戽辁个纳永饧乓前圪咐胶 ⑴ 用 Verilog HDL 语言设计 D 触发器、 JK 触发器和 JK触发器转换的 D 触发器,进行功能仿真验证。 咦敞辱忏洙茯吟璃惹分司 ⑵ 使用 chipscopePro 生成 VIO/ICON 核,在线观测调试。 泪胁蝇捋徕饫邵暨岑呒嗓 四、 实验准备 绒虔罢欺颉舯洚瘘郡扈圹 ⑴ 将 USB 下载电缆与计算机及 XUPV2Pro 板的 J8 连接好; 父镏蝴撸梁缦璞槟疼珊疽 ⑵ 将 RS232 串口线一端与计算机连接好,另一端与板卡的 J11 相连接; 烹这锺鸿殁瘥步骥什锷弄 ⑶ 启动计算机,当计算机启动后,将 XUPV2Pro 板的电源开关 SW11 打开到 ON 上。 观察 XUPV2Pro 板上的+ ,+ ,+ 的电源指示灯是否均亮。 若有不亮的,请断开电源,检查电源; 留酎模仿侮阗萃骆贵咻喑 五、 实验步骤 敬蕹庭究镣踝牛筷账燠椐 ㈠ D 触发器设计 钢爿铥痹菀操葸享佑摁胜 ⑴ 创建工程及设计输入 瞪轻笨辨敞碚楠恫否蓄参 ① 在 E: \project\目录下,新建名为 dtrigger 的新工程; 篷信方喽推奠离鄞尽绦钔 器件族类型( Device Family)选择“ Virtex2P”, 煮阜邪骚锥藕贲邻迕堆遏 器件型号( Device)选“ XC2VP30 ff896 7”, 媳拶廊芜谲葱禾颌哔绮枳 综合工具( Synthesis Tool)选“ XST (VHDL/Verilog)”, 稚鹳鸷子儋荤盛筵急铊龄 仿真器( Simulator)选“ ISE Simulator” 交圄岍抽孺术拄嵇猢昴芬 痈寞嗔孜啤箦徽荩槟傍馔 叠光瘸坍寸癔欣成吊浆惫 18噔雀砷娩冠骟复髓衩闯米 ② 设计输入,在源代码窗口中单击右键,在弹出的菜单中选择 New Source,在弹出的对话框中选择 Verilog Moudle ,在右端的 File name 中 输入源文件名dtrigger,下面各步点 next,然后在弹出的源代码编辑框内输入 D 触发器的源代码并保存即可。 忌谚岿市必缥抡库蟾俊漏 ⑵ 功能仿真 庋了铣逅夺吠涸尥缩涎储 ① 在 sources 窗口 sources for 中选择 Behavioral Simulation。 僳痔敢箍嫁腠锚拿募谈兔 ② 由 Test Bench WaveForm 添加激励源,如图 4 所示: 藜侪蜥侨更盲历酞宛驵赕 豢盈肫郜鄱肽缓鸩讨寂荪 图 4 波形激励编辑窗口 翕蛴菽鄢影读箱爬蟀鲮砒 ③ 单击“ ”,然后在 processes窗口中双击 Simulater Behavioral Model 开始仿真,仿真结果如图 5 所示。 艿王诋泅券礅郊吱岱骧鼙 藤峦扣敌。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。