- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE
1-
实验六verilogHDL设计编码器、译码器
一、编码器设计
(1)在设计编码器时,首先需要明确编码器的类型和功能。编码器主要有两种类型:二进制编码器和优先级编码器。二进制编码器能够将输入信号的每一位转换成二进制编码输出,而优先级编码器能够根据输入信号的高低优先级顺序进行编码。例如,一个4到2线优先级编码器能够处理4个输入信号,并输出2位的二进制编码,以表示优先级最高的输入信号。
(2)在实际设计过程中,编码器的输入输出关系需要通过真值表来定义。例如,设计一个4到2线优先级编码器,输入端为A、B、C、D,输出端为Y1、Y0。真值表如下:
|A|B|C|D|Y1|Y0|
|||||||
|0|0|0|0|0|0|
|0|0|0|1|0|1|
|0|0|1|0|0|1|
|0|0|1|1|0|1|
|0|1|0|0|0|1|
|0|1|0|1|0|1|
|0|1|1|0|0|1|
|0|1|1|1|0|1|
|1|0|0|0|1|0|
|1|0|0|1|1|0|
|1|0|1|0|1|0|
|1|0|1|1|1|0|
|1|1|0|0|1|0|
|1|1|0|1|1|0|
|1|1|1|0|1|0|
|1|1|1|1|1|0|
(3)根据真值表,我们可以设计出编码器的逻辑电路。以4到2线优先级编码器为例,使用与门、或门和非门等基本逻辑门来实现。在VerilogHDL中,可以使用case语句或者if-else语句来实现逻辑功能。例如,使用case语句实现编码器逻辑如下:
```verilog
modulepriority_encoder(
input[3:0]inputs,
outputreg[1:0]outputs
);
always@(inputs)begin
case(inputs)
4b0000:outputs=2b00;
4b0001:outputs=2b01;
4b0010:outputs=2b10;
4b0011:outputs=2b11;
4b0100:outputs=2b00;
4b0101:outputs=2b01;
4b0110:outputs=2b10;
4b0111:outputs=2b11;
4b1000:outputs=2b00;
4b1001:outputs=2b01;
4b1010:outputs=2b10;
4b1011:outputs=2b11;
4b1100:outputs=2b00;
4b1101:outputs=2b01;
4b1110:outputs=2b10;
4b1111:outputs=2b11;
default:outputs=2b00;
endcase
end
endmodule
```
二、译码器设计
(1)译码器在数字电路设计中扮演着将二进制编码转换成对应输出的重要角色。译码器的主要类型包括二进制译码器、十进制译码器和显示译码器等。在设计译码器时,首先需要确定输入和输出的位数,以及译码器的功能。例如,一个常用的二进制译码器将n位二进制输入转换为2^n个输出,其中只有一个输出在任意时刻为高电平,其余为低电平。
(2)以一个4到16线译码器为例,输入端有4位二进制数,输出端有16个独立输出。其真值表如下所示,其中只有一条线对应输入的组合会变为高电平,其余均为低电平:
|输入(A3A2A1A0)|输出(Y15Y14Y13Y12Y11Y10Y9Y8Y7Y6Y5Y4Y3Y2Y1Y0)|
|||
|0000|000000000000000000000000000000000000000000000000000000000|
|0001|000000000000000000000000000000000000000000000000000000001|
|0010|000000000000000000000000000000000000000000000000000000000|
|0011|000000000000000000000000000000000000000000000000000000001|
|0100|000000000000000000000000000000000000000000000000000000000|
|0101|000000000000000000000000000000000000000000000000000000001|
|0110|000000000000000000000000000000000000000000000000000000000|
|0111|000000000000000000000000000000000000000000000000000000001|
|1000|00000000000
文档评论(0)