明德扬点拨FPGA高手进阶

明德扬点拨FPGA高手进阶

ID:38279591

大小:416.27 KB

页数:6页

时间:2019-05-29

明德扬点拨FPGA高手进阶_第1页
明德扬点拨FPGA高手进阶_第2页
明德扬点拨FPGA高手进阶_第3页
明德扬点拨FPGA高手进阶_第4页
明德扬点拨FPGA高手进阶_第5页
资源描述:

《明德扬点拨FPGA高手进阶》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、5.3组合逻辑组合逻辑一般可以分成三类:门级逻辑、选择器和比较器、运算逻辑等。5.2.1组合逻辑verilog代码Verilog的程序代码,组合逻辑的代码结构如下:always@(*)begin代码语句;end或者是assign代码语句;代码中@后是敏感列表,当括号内的条件满足时,就执行一次。括号内的“*”,表示代码语句中所有信号有变化。结合起来就是:当代码语句中的信号有变化时,就执行一次。这与组合逻辑电路的功能是对应的。组合逻辑也是信号变化,输出立刻变化。有很多代码的敏感列表里列出所有信号,如always@(aorborc),建议不要

2、这样写,容易把信号给遗漏,从而导致不希望的电路出现。明德扬建议初学者前面章节中不要用assign语句,这样全部代码都是always结构。5.2.2门级逻辑分类情况功能代码电路示意图备注regA,B;always@(*)begin连线将两根线连AB1位相连B=A;接endreg[3:0]A,B;A[0]B[0]当A和B是n位时,always@(*)begin实际就有n根线。将两端的线A[1]B[1]多位相连B=A;但为看图方便,我一对一连接A[2]B[2]end们通常只画出一根A[3]B[3]线表示reg[3:0]A;A[0]Xreg[2

3、:0]B;移位A向右或向A[1]Xalways@(*)begin移位操作,实际上(右移:>>左移动后,A[2]B[0]B=A>>2;是选哪线相连。左移:<<)赋值给BA[3]B[1]end1'b0B[2]reg[3:0]A;将大括号内reg[2:0]B;A[1]X拼接的内,按位always@(*)beginA[0]B[0]拼接,实际上是选(符号:{})置一对一连B={A[2],A[3],A[0]};A[3]B[1]哪线相连。接endA[2]B[2]regA,B;1位反相器always@(*)beginAB将值取反(符号:~)B=~A;e

4、nd反相器如果A和B都是nreg[1:0]A,B;A[0]B[0]位,实际电路就是多位反相器always@(*)begin将值取反有n个反相器。画(符号:~)B=~A;A[1]B[1]电路图时可画一个end来简化。注意:FPGA支持多regA,B;输入的与门,例如A和B都为always@(*)begin1位逻辑与A四输入与门,输入1,C为1;C=A&&B;BC(符号:&&)可为ABCD,输出否则C为0。end为E,当ABCD同时为1时,E为1多位信号之间的逻辑与,很容易与门A[0]引起歧义,设计最A[1]reg[2:0]A,B,C;A[

5、2]好不要用多位数的A或B都不always@(*)begin逻辑与。如果要实多位逻辑与为0时,CCC=A&&B;现上面功能,建议(符号:&&)为1,否则B[0]endB[1]代码改为如下:为0。B[2]always@(*)beginC=(A!=0)&&(B!=0);endA[0]C[0]reg[2:0]A,B,C;B[0]按位与A和B对应always@(*)beginA[0](符号:&)的比特分别C=A&B;C[1]B[0]常用1相与。endA[0]C[2]B[0]reg[2:0]A;A[0]按位与always@(*)beginA[1]

6、CA的各位之(符号:&)C=&A;A[2]间相与。常用2end注意:FPGA支持多regA,B;A和B其中输入的与门,例如always@(*)begin1位逻辑或1个为1,CA四输入与门,输入C=A

7、

8、B;CB(符号:

9、

10、)为1;否则C可为ABCD,输出end为0。为E,当ABCD同时为1时,E为1多位信号之间的逻辑或,很容易A[0]引起歧义。最好不A[1]reg[2:0]A,B,C;A[2]要用多位的逻辑A和B其中always@(*)begin或。如果要实现相多位逻辑或1个非0,CCC=A

11、

12、B;同功能,建议改为(符号:

13、

14、)为1;否

15、则CB[0]endB[1]如下:为0。B[2]always@(*)begin或门C=(A!=0)&&(B!=0);endA[0]C[0]reg[2:0]A,B,C;B[0]按位或A和B对应always@(*)beginA[0](符号:

16、)的比特相C=A&B;C[1]B[0]常用1或。endA[0]C[2]B[0]reg[2:0]A;A[0]按位或always@(*)beginA[1]CA的各位之(符号:

17、

18、)C=&A;A[2]间相或常用2end此外还有同或门、与非门、或非门等等,但画电路图时比较少用。同学们需要记清楚上述电路示意图,这是

19、后面画图练习的基础。5.2.3选择器和比较器分类情况功能代码电路示意图备注always@(*)beginScase(S)通过S,选2’b00:C=D0;D0D1器常见形式1择输入给输2’b01:C=D1;C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。