verilog教程范例北京至芯科技FGA培训_第1页
verilog教程范例北京至芯科技FGA培训_第2页
verilog教程范例北京至芯科技FGA培训_第3页
verilog教程范例北京至芯科技FGA培训_第4页
verilog教程范例北京至芯科技FGA培训_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Verilog

设计举例结构模块的层次化组成各种类型模块之间的关系测试和验证北京至芯FPGA培训设计示例一

用门级结构描述D触发器

设计示例一module flop(data,clock,clear,q,qb);input data,clock,clear;output q,qb;nand #10 nd1(a,data,clock,clear),nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);nand #9 nd3(c,a,d),nd7(q,e,qb);not #10 iv1(ndata,data),iv2(nclock,clock);endmodule用户定义的原始元件

primitiveudp_and(out,a,b);outputout;inputa,b;table//ab:out;00:0;01:0;10:0;11:1;endtableendprimitive用户定义的原始元件

前面模块中的nand和not原语元件(primitive)在Verilog语言中是保留词,它们分别表示:与非门和非门的逻辑关系。在Verilog语法中通过用户定义的原始元件语句(即UDP)的真值表和带参数的延迟线模型来表示。在与具体工艺库的逻辑对应时把具体延迟参数传入延迟线模型,再加上描述逻辑关系的UDP。就有了一个与真实情况很接近逻辑模型,仿真器就可以依据它进行计算,来确定相互连接元件的逻辑值。

设计示例二

由已设计的模块来构成高一级的模块

clrdqclkclrdqclkclrdqclkq0d0clrdqclkd3d2q2q3q1d1clrbclkf4f3f2f1四位寄存器电路结构图

设计示例二`include“flop.v”module hardreg(d,clk,clrb,q);input clk,clrb;input[3:0] d;output[3:0] q;flop f1(d[0],clk,clrb,q[0],),f2(d[1],clk,clrb,q[1],),f3(d[2],clk,clrb,q[2],),f4(d[3],clk,clrb,q[3],);endmodule

设计示例三

编写测试模块通过仿真检查设计正确与否

`include“hardreg.v”modulehardreg_top;regclock,clearb;reg[3:0]data;wire[3:0]qout;`definestim#100data=4'b//宏定义stim,可使源程序简洁eventend_first_pass; //定义事件end_first_pass

设计示例三(续)hardregreg_4bit(.d(data),.clk(clock),.clrb(clearb),.q(qout));/*---------------------------------------------------把本模块中产生的测试信号data、clock、clearb输入实例reg_4bit以观察输出信号qout.实例reg_4bit引用了hardreg---------------------------------------------------*/initialbeginclock=0;clearb=1;end

always#50clock=~clock;

设计示例三(续)initialbeginrepeat(4)begin/*-------------------------------------------------宏定义stim引用,等同于#100data=4'b注意引用时要用`符号。

-------------------------------------------------*/`stim0000;`stim0001;......`stim1111;#200->end_first_pass;//延迟200个单位时间,触发事件end_first_passend$finish; //结束仿真end设计示例三(续)

always@(end_first_pass)clearb=~clearb;//清零信号电平翻转always@(posedgeclock)$display(“attime%0dclearb=%bdata=%bqout=%b”,$time,clearb,data,qout);endmodule设计示例四

带异步复位端的D触发器moduleDFF(q,d,clk,reset);outputq;inputd,clk,reset;regq;always@(posedgeresetornegedgeclk)if(reset) q<=1'b0;else q<=d;endmodule设计示例四(续)

用D触发器构成T触发器moduleTFF(q,clk,reset);outputq;inputclk,reset;wired;DFFdff0(q,d,clk,reset);//DFF已在上面的模块定义notn1(d,q);//not表示非门是一个Verilog原语.endmodule设计示例四(续)

用四个T触发器组成一个进位计数器moduleripple_carry_counter(q,clk,reset);output[3:0]q;inputclk,reset;//4instancesofthemoduleTFFarecreated.TFFtff0(q[0],clk,reset);TFFtff1(q[1],q[0],reset);TFFtff2(q[2],q[1],reset);TFFtff3(q[3],q[2],reset);endmodule设计示例四(续)

用激励信号对进位计数器进行测试modulestimulus;regclk;regreset;wire[3:0]q;//instantiatethedesignblockripple_carry_counterr1(q,clk,reset);//Controltheclksignalthatdrivesthedesignblock.initialclk=1'b0;always#5clk=~clk;设计占示例仪四(石续)刷用钞激励涂信号划对进梢位计飘数器陶进行脏测试//龄C腰on方tr苗ol蔑t馅he窃r能es共et杰s伏ig融na挺l嚷th坐at降d趴ri计ve粉s乖th竿e拍de廉si衫gn钓b菌lo忘ckin嫁it唉ia袋lbe策gi颂nre胆se少t窗=雄1'怠b1赶;#1惩5杰r看es靠et恰=填1涉'b抖0;#1造80父re插se井t航=锡1'腰b1概;#1逗0稍r甩es丧et惠=遥1痛'b渡0;#2此0腐$锯st贴op性;en障d设计幅示例刻四(愤续)愁用粉激励影信号凳对进些位计秤数器盗进行盼测试//偿M挂on欣it束or恳t蝴he凉o摧ut慌pu颗tsin密it龙ia川l$m讯on棉it遵or截($皂ti殃me营,郑"限Ou丧tp音ut府q艺=花%沸d"轿,览q恼);en易dm职od敞ul莫e设计蛙示例葬五用一庄位全逝加器建组成绸四位披全加幼器mo睛du赔leFu殿ll隆Ad裁de斩r(A魄,忠B,Ci押n,保SU嚷M,Co宝ut);in淋pu帖t挠A略,戒B,Ci搞n;ou市tp械ut大S雁UM荷,Co夺ut;as拌si指gn眯S时UM皮=剑A丢^泪B量^Ci森n;as脂si层gnCo侍ut=芝(A奋&需B杠)统|叠(A殊&Ci休n)针|宅(B加&Ci芦n);en训dm充od将ul适e设计茶示例厌五(续脆)用一粉位全绍加器艘组成窝四位辞全加滴器mo百du盐le胡A涌DD升ER泡4B上IT鞋(Ai箩n,蚁Bi顿n,草S岭UM去,尚OV饺F)禁;in粮pu贴t纪[3榨:0性]Ai抚n,狼Bi搭n;ou碎tp纲ut凳[3鸟:0臂]待SU依M;wi算re路[末2:宗0]忌C下Y;ou腔tp筝ut拾O翁VF诸;Fu坛ll梅Ad忧de碧rU0倡(惠Ai座n[撕0]熟,耐Bi宽n[张0]需,配0,友S沙UM牙[0崖],做C袄Y[怎0]静);Fu财ll剪Ad览de品rU1艳(党Ai霉n[懂1]委,雾Bi炉n[房诚1]讯,穿CY驴[0俊],价S旺UM骡[1猾],台C阀Y[宽1]逼);Fu某ll冷Ad甲de飞rU2嫁(拔Ai枪n[秃2]陵,脾Bi妥n[骆2]惜,展CY刺[1命],川S蚊UM阶[2伯],骂C询Y[巨2]鄙);Fu疤ll战Ad骑de寇rU3逝(滨Ai测n[庸3]番,社Bi未n[略3]赖,点CY某[2瞎],阴S内UM桂[3加],案O教VF姨);en诵dm脚od稍ul添e设计消示例嫩五(续隔)用四逼位全裁加器秤的测匹试`ti涨me颂sc杨al圣e横1n病s/辅1n领smo壳du咽le识AD脑DE拢R4亭BI龙T_辞TE甲ST纠;re胃g[3泄:0句]Ai瓦n,剂Bi若n;wi粉re灯[闪3:沟0]均S咏UM办OU痰T;wi勾re仁O唇VF神;AD垮DE仍R4反BI拔T筛m误(Ai全n,器Bi叠n,昂S足UM篮OU辽T,但O村VF采)掌;in垦it弓ia倦l阅be吨gi矿nAi效n=灯4'翠b0渣00敬0;罪Bi较n=萄4宵'b苹00阿00义;#1概00Ai势n=精4'俗b0坛11峡1;慰Bi辩n=凶4刃'b堂01掠01仁;#1祖00腐…激……心..#1帖00Ai垄n=帽4'吊b0每00科0;费Bi烈n=猜4宣'b琴00膝00可;#1挑00躁$够st斤op旅;en献den习dm截od嗽ul杏e设计涨示例醒五(续北)四位顽全加朋器的除另一意种描乖述mo珠du烫le景A剑DD恰ER爬4B滥IT掌(Ai效n,委Bi框n,脚S帖UM割,碗OV你F)客;in榆pu朋t赚[3揪:0魄]Ai稠n,面Bi乱n;ou咱tp松ut搜[惰3:窑0]字S拳UM抓;ou检tp由ut退OV德F;as栽si析gn腰{O纪VF曲,绑SU扇M}权=Ai戚n+B幕in换;En渡dm雕od满ul柔e这种邻描述局方法彻比较铅直观损,可粗以直今接用杯综合想器转夸换为寒门级拜组合债逻辑朴互相偷连接西的描尾述。帽仍然刚用同熄样的醋测试庸模块察测试窜。这槐种描渗述使刑得逻槐辑关坦系更绪容易暂明白隶。综合不的一金般原障则综合约之前名一定泉要进依行仿车真,延这是传因为路仿真星会暴矿露逻浅辑错训误,继所以贪建议投大家飘这样戚做。盼如果引不做摔仿真路,没丧有发峡现的览逻辑鸦错误睡会进轧入综挽合器篮,使盈综合廉的结养果产假生同判样的吊逻辑狸错误叛;每一钥次布痛局布异线之袄后都拔要进增行仿序真,察在器秋件编乐程或停流片村之前跃要做搭最后义的仿陡真;用Ve歌ri拴lo变gHD仙L描述从的异融步状挨态机休是不具能综蝇合的即,因洗此应伟该避射免用带综合表器来芝设计贯,如杨果一脚定要幕设计域异步扑状态含机则研可用学电路注图输脏入的哪方法蹈来设启计;如果途要为亏电平责敏感泡的锁侄存器置建模茅,使晴用连鸟续赋原值语桌句是脑最简吐单的遮方法菜。设计梳示例鉴六:指令差译码遮电路颠的设枕计实踢例(利悔用电龟平敏舞感的al毕wa谊ys块来送设计篮组合捕逻辑捷)`de犁fi酬ne猾p俱lu威s晋3'土d0//特操作捞码的寸宏定配义`d搬ef葱in员e宾mi称nu奴s倒3'觉d1`d练ef宅in幕e乡丰ba耍nd厌3役'd该2`d公ef陷in不ebo蛋r3'艘d3`d哨ef宾in撒eun糠eg克at场e3'僵d4mo沫du蛮leal驶u(ou袭t,条op副co冤de伴,a肆,b);ou什tp踩ut励[觉7:施0]促o途ut必;in梳pu充t额[2师:0掩]op堪co翼de;in扛pu腔t拣[7浸:0熟]无a,充b;re位g[7书:0即]绕ou尼t;设计凉示例辉六:指令拘译码岭电路诞的设面计实兽例(利遭用电喝平敏矛感的al波wa时ys块来嚷设计骡组合眯逻辑溉)al慨wa忠ys满@咐(op盒co铲deor鸣a达o法r陶b)//用电基平敏冷感的al跌wa管ys块描星述组抽合逻冬辑be抢gi挖nca醋se岔(o造pc课od巩e)卧//算术词运算`pl尝us肾:算ou页t超=a逮+掘b役;`m蕉in层us班:艰ou倍t疤=沃a平-印b;景/资/位运兔算`ba茎nd轮:短ou欺t毯=织a竭&壁b;`bo妇r:钩ou尾t踪蝶=滔a皱|剂b;`un绣eg缸at外e:析ou谦t删=魔~a羽;失/雪/单目摊运算de违fa拨ul敬t:易o盼ut粪=狗8睬'h矿x;en举dc达as迁een申den炼dm历od哄ul凡e设计谋示例址六:指令妈译码泉电路唉的测榴试`t近im膨es研ca秩le价1乞ns论/1坊nsmo兼du邮le叠t言;wi纱re妙[读7:务0]钻r撇es展ul盏t;re冰g[2俩:0样]op略c;re佛g[7伴:0看]ai姓n,础bi闭n;re铁gcl献k;in让it杆ia址l手b喉eg顿incl计k=械0;ai瘦n=0环;坐bi政n=守3;op道c=0厕;未en蹈dal瓜wa错ys肆#泡20cl度k=吹~cl惰k;al虽wa母ys平@纠(po辉se续dg裹ecl齐k)be字gi党nai锡n=ai揭n+1虑;驳bi赤n跑=晌bi舟n+绕2;op归c={抹$r诞an眠do秆m}化%8斜;乒en热dal秘um虽(.铲ou缎t师(r朵es驴ul档t)犁,板.op们co照de找(o烫pc妹),符.a匙(a厘in数),言.b沟(b踩in))滤;in掘it蹲ia帖l住be棵gi灰n箩#少(2掠0*提20漏00谱)研$s耗to帆p;耀e输ndin安it甜ia走l浓$甘mo鞠ni言to弄r(诉$t魔im汪e,传,苦“ai指n=%鸽b,示b脉in障=%拜b,op虹c=%伟b,堡r思es占ul渠t=割%b面”,ai我n,益bi坝n,op萌c,掀re践su毫lt乏);en豪dm寻od吹ul揉e设计融示范听七:状态讽机和漫电路愚动作赔的控泻制设计它一个脂电路杆接口竹,可纵以把诱并行叛的四帝位数丙转在ac离k信号常的控个制下较逐个硬转变抬为串加行数稼据。sd捏aM1sclkdata[3:0]acksclrst设计冈示范歉七:状态棉机和笑电路猎动作役的控绪制串行翻数据饿符合茂以下堆协议睡:1/01/01/01/0sclsdasclk设计现示范小七:状态献机和叠电路窑动作热的控吊制/*暂*挣模块舞功能扔:按郑照设筐计要售求把知输入英的4反位平盏行数药据转拴换为便协议铜要求每的串狗行数忌据流槐由sc缸l和sd饶a配合鲁输出侮本模族块为RT市L可综盈合模默块,刃已通茄过综店合后抱门级交网表流仿真粗**饱/mo余du韵lept宁os学da(sc裁lk,ac顺k,但sc卵l,局sd乌a,扮rs健t,析da尺ta);in傻pu肢tsc剥lk,rs腰t,磁;in培pu冈t董[3途:0配]什da梯ta眉;ou贫tp漏utsc捷l,男ac品k;in碌ou压tsd航a;//定义sd眉a为双觉向的摔串行皆总线re狮gsc足l,li很nk池_s牙da,sd矿ab快uf撕,a充ck;re疫g[3逝:0诵]da宏ta子bu粉f;re雾g[7胸:0掌]漆st稍at辛e;as拌si察gnsd住a=li盏nk马_s酒da?sd大ab精uf:1道'b讨z;//li蹈nk墨_s寄da控制sd阴ab纱uf输出处到串基行总效线上设计宅示范购七:状态横机和选电路窑动作抱的控耽制pa禁ra语me捞te葡r配r询ea茶dy肃=恋8涌'b鸦00耕00撇_0学00注0,st誉ar朴t趟=倦8'袭b0抱00决0_捕00穿01冒,bi番t1狠=米8影'b异00蒸00涛_0培01爪0,bi懒t2煎=慈8逆'b瞎00雨00姻_0偿10箱0,bi送t3线=忧8亭'b栗00础00刊_1课00硬0,bi耐t4谊=雄8笨'b口00载01伞_0友00快0,bi撇t5蛋=军8捉'b毛00纸10代_0紧00嚷0,st妨op闭=芳8肤'b宵01保00辟_0体00龟0,ID有LE兔=蜘8靠'b偶10争00抚_0椅00房诚0;设计调示范擦七:状态妻机和迈电路命动作饼的控阻制al防wa铅ys支@纵(po拍se倾dg伯esc肝lkorne维ge货dg屈ers拾t)//由输染入的sc第lk时钟熊信号谦产生点串行严输出幅时钟sc奴lbe挠gi从nif隔(思!rs哄t)sc器l<=热1土;el仆sesc惰l<=亭~sc但l;en而dal清wa揭ys骄@坝(po历se掘dg油eac垫k)//从并枣行da遵ta端口握接收竖数据订到da晌ta凉bu迈f保存be烤gi冰nda箩ta洁bu浮f<=顺d墨at姥a;en夕d设计泪示范过七:状态瘦机和灯电路疲动作浅的控峰制//主状血态机府:产悄生控额制信灶号,波根据da暖ta组bu非f中保盟存的洒数据塘,按阿照协相议产质生sd背a串行羽信号al作wa虾ys傅@佳(ne灵ge艳dg拆esc乎lkorne纺ge康dg烟ers罚t)if凡(踪蝶!rs位t)be察gi被nli雀nk泊_s柄da<=油0;//把sd食ab盯uf与sd亭a串行叛总线熟断开st姓at分e汁<=蛛r献ea涂dy口;sd率ab豪uf<=遵1蓬;ac撒k<=唉0;en乡丰del仆sebe笨gi日nca率se饺(s兴ta作te伶)re伞ad忘y:攻if琴(粱!sc涌l&&用!ac狭k)//请求胜新的果并行凤数据be更gi披nli懂nk贩_s招da<=棒1;//把sd歉ab硬uf与sd医a串行矩总线爸连接设计夫示范萌七:状态煌机和鲁电路破动作腔的控挥制st结at挣e临<=萌s臭ta嘉rt黄;ac烤k<=瓦1舍;//发出垄请求圾新数可据en旨del觉se奋//并行徒数据哪尚未兼到达be玻gi面nli晚nk圾_s嘱da<=渣0;杯/壤/把sd游a总线亮让出泄,此扫时sd恳a可作滔为输痕入st缠at管e炮<=膀r闻ea竭dy加;en愧dst彼ar践t于:盼i趟f霞(sc瓦l&&ac僚k)//产生sd腥a的开且始信服号be膏gi逆nsd筛ab宪uf<=驱0;叙//在sd精a连接仅的前蛋提下腹,输惠出开暂始信呜号st趣at搬e蛾<=畜b违it芳1;en吧del寒se妄s裙ta京te劈燕<昌=岔st朵ar健t;设计南示范遭七:状态浩机和头电路盘动作装的控迅制bi符t1铺:吗if话(秆!sc闪l)前/教/在sc剑l为低掉电平揪时送迈出最凝高位da冷ta厚bu押f[丝式3]be货gi脉nsd恐ab截uf<=仅da垂ta励bu屠f[觉3]笨;st既at固e屡<=出b伴it餐2;en俭del蒸se陪s秋ta川te忽<料=况bi断t1吵;bi饲t2榜:穷if烈(棋!sc盐l)寇/壶/在sc题l为低里电平胁时送妻出次报高位da似ta犁bu相f[处2]be逝gi宾nsd堵ab唯uf<=盯da倾ta输bu拾f[加2]娱;st类at袜e脊<=匆b却it帐3;en或del奶se与s犁ta橡te求<转=舅bi刷t2碗;bi榴t3攻:突if蓄(华!sc洲l)竟/植/在sc招l为低疼电平谊时送察出次同低位da蚁ta隐bu蒙f[春1]be花gi宴nsd涌ab抚uf<=蚕da妹ta春bu赵f[桶1]荒;st料at帽e塌<=绵b旗it蒜4;en袄del落se肯s酿ta射te荷<绣=绩bi殊t3灭;设计哪示范倍七:状态斜机和净电路屈动作让的控红制bi垄t4纳:况i融f睡(!sc赴l)娃/岗/在sc锻l为低榴电平羞时送附出最碑低位da洗ta岛bu弓f[霉0]be钱gi沿nsd英ab锈uf<=换da锯ta篇bu再f[钱0]俩;st五at突e止<=逼b垂it绞5;en梨del末se缸s费ta卖te膜<卖=旱bi膏t4苍;bi摘t5翼:龟i丑f而(!sc梳l)饼/压/为产炮生结乌束信雨号做坡准备蜜,先踢把sd渗a变为海低be着gi搅nsd超ab痒uf<=开0;st淡at义e广<=秀s鲁to虫p;ac咱k<=绝0;en谎del北se头s表ta枝te悠<乒=咐bi剑t5侦;st辰op去:某i者f梁(sc娱l)句//在sc巩l为高霜时把sd学a由低小变高薪产生愿结束跃信号be装gi古nsd珠ab宣uf<=划1;st紧at踩e推<=净I堪DL交E;en惠del晕se吸s盛ta钳te摇<谈=俩st熔op统;ID驴LE与:厦b戒eg翼inli妥nk奔_s法da<=死0驼;青//把sd抽ab荡uf与sd日a串行歪总线蓬脱开st狐at陶e横<=补r虫ea哪dy膊;en浸d设计夹示范收七:状态陪机和锹电路溉动作撕的控肉制de肤fa妇ul事t:肤be家gi劣nli基nk痒_s盯da<=着0泥;sd铲ab嫁uf<=郊1;st勒at管e净<=吵r留ea远dy讲;en吓den榨dc晚as侦een剧den菊dm幼od显ul喝e//偏--证--估--失--朵--pt祖os挠da作.v文件仍结束颜--耽--牌--甜--最--是--蜡--闻--聚--神--史--呜-设计仁示范浩七:状态病机和积电路剥动作备的控暂制:呢测试豪信号呈源的毙行为该模块//屈--痰--圾--凑-si括gd浴at扰a.巨v文件浴的开最始离--塔--旨--叛--羊--器--诊--晋--旬--着--舰--期--近--铁--巧--食--台--真--锦--奖--传--施--恋-/*财**喜*倚模块叔功能薪:钳本模钓块产奸生测胡试信安号对肿设计锡中的拖模块辰进行霞测试娃。**滥*孤本模色

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论