欢迎来到天天文库
浏览记录
ID:30779217
大小:68.00 KB
页数:7页
时间:2019-01-03
《verilog语言描述常见电路结构范例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Verilog语言描述常见电路结构范例组合逻辑常见的组合逻辑有:算术逻辑部件、多路选择器、编码器、优先编码器、译码器和比较器等。逻辑结构控制使用括号对以改变组合逻辑的结构。虽然EDA工具可以对组合逻辑设计进行重新优化组合,但在Verilog描述中使用括号可以降低EDA工具的压力,并且减少工具的综合时间。在下面的例子中,虽然y2和yl的功能是一样的,但yl会使用三级加法器,使用括号的y2只使用二级加法器。always@(alora2orb1orb2orclorc2ord1ord2)beginyl=al+bl+cl+dl;y2=(a2+b2)+(c2+d2);e
2、nd二选一多路选择器下面给出了三种描述2:1MUX的方法。yl是通过条件赋值语句实现的,y2和y3都是通过讦语句实现的。wireyl=sei1?a1:b1;always@(a2ora3orb2orb3orsel2orsel3)beginy2=b2;if(sel2)y2=a2;if(sel3)y3=a3;elsey3=b3;end四选一多路选择器用Verilog描述4:1MUX可以有如下方法:一个if语句加多个elseif从句嵌套if语句case语句always@(aorborcordorsei)beginif(sei==2*b00)y=a;elseif(se
3、i==2'bO1)y=b;elseif(sei==2'b10)y=c;elsey=d;endalways@(aorborcordorsei)beginif(sel[l]==0)if(sel[0]==0)y=a;elsey=b;elseif(selfO]==0)y=c;elsey=d;endalways@(aorborcordorsei)begincase(sei)2'b00:y=a;2'b01:y=b;2'blO:y=c;2,bll:y=d;default:y=a;endcaseend八选一多路选择器描述8:1MUX最好使用case语句always@(a0o
4、ralora2ora3ora4ora5ora6ora7orsei)begincase(sei)0:y=aO;1:y=al;2:y=a2;3:y=a3;4:y=a4;5:y=a5;6:y=a6;7:y=a7;default:y=aO;endcaseend8:3编码器编码器可以将多个离散的信号用编码表示出来,比如3位的编码可以表示8个信号。下面的例子给出了三种8:3编码器的描述方法。always@(a)beginif(a==S'bOOOOOOOl)y=0;elseif(a==8'bOOOOOOlO)y=1;elseif(a==8'b00000100)y=2;el
5、seif(a==8'b00001000)y=3;else讦(a==8*bOOO10000)y=4;elseif(a==8*b00100000)y=5;elseif(a==8*b01000000)y=6;elseif(a==8'b10000000)y=7;elsey=3'bX;endalways@(a)begincase(a)8'b00000001:y=0;8'bOOOOOOlO:y=1;8'bOOOOOlOO:y=2;8^00001000:y=3;8^00010000:y=4;8'bOOlOOOOO:y=5;8'b01000000:y=6;8^1000000
6、0:y=7;default:y=3'bX;endcaseendalways@(a)begintest=8*b00000001;y=3'bX;for(i=0;i<&i=i+l)beginif(a==test)y=i;test=test«1;endend优先级编码器优先级编码器是一种特殊的编码器,就是当多个输入信号同吋有效时,它只输出优先级最高的信号的编码。下面的例子给岀了8:3优先级编译器的描述方法。always@(a)beginvalid=1;if(a[7])y=7;elseif(a[6])y=6;elseif(a[5])y=5;elseif(a[4J)y=
7、4;elseif(a[3])y=3;elseif(a[2])y=2;elseif(a[lJ)y=1;elseif(a[0])y=0;elsebeginvalid=0;y=3'bx;endendalways@(a)beginvalid=1;casez(a)8'bl???????:y=7;8*501??????:y=6;8'b001?????:y=5;8'b0001????:y=4;&b00001???:y二3;8W00001??:y=2;8*60000001?:y=1;8*b00000001:y=0;default:beginvalid=0;y=3'bx;en
8、dendcaseendalways@(aorn)be
此文档下载收益归作者所有