Modelsim 83优先编码器的行为描述Verilog HDL代码BCD码转余3码编码器的行为描述Verilog HDL代码独热码编码器的行为描述

1.case 语句后面多个语句要也begin end 第二个卡在这,case还有其他表示法,用{}之类的

2.最开始一直卡在这,搞半天发现是 4'b1111,不是4b'1111

** Error: C:/modeltech_6.5/win32/lab4_2.v(10): Undefined variable: b1xxxxxxx.

** Error: C:/modeltech_6.5/win32/lab4_2.v(10): near "=": syntax error, unexpected '=', expecting "++" or "--"

83优先编码器Verilog HDL行为描述源代码

文件名:

module lab4_2(DataOut, DataIn, EN); //不要更改模块名称和端口名称,否则影响后面模块调用

input[7:0] DataIn; //8位输入待编码信号

input EN; //编码使能控制信号,1使能编码,0关闭编码功能

output[2:0]DataOut; //编码器信号输出端,输出位宽为3位

reg [2:0]DataOut;

//以下自己编写代码,注意添加所需的寄存器或线名称

always@(DataIn, EN)   //????SEL??????????

if(!EN)

  begin

  DataOut=3'bzzz;

  end

else

  begin

  casex(DataIn)            //??????

    8'b1xxxxxxx:DataOut=3'b111;         //SEL=00???????A

    8'b01xxxxxx:DataOut=3'b110;         //SEL=01???????B

    8'b001xxxxx:DataOut=3'b101;          //SEL=10???????C

    8'b0001xxxx:DataOut=3'b100;

    8'b00001xxx:DataOut=3'b011;

    8'b000001xx:DataOut=3'b010;

    8'b0000001x:DataOut=3'b001;

    8'b00000001:DataOut=3'b000;          //SEL=11???????D

    default:DataOut=3'bzzz;   //SEL??????????8?11111111?????????0

  endcase  

  end  

              //????????

endmodule

实验4.3BCD码转余3码编码器模块设计

根据给定的编码器的功能描述及真值表,完成编码器的行为描述,注意注释代码

BCD码转余3码编码器Verilog HDL行为描述源代码

文件名:

module lab4_3(DataOut,ERR,DataIn); //不要更改模块名称和端口名称,否则影响后面模块调用

input[3:0] DataIn; //4位输入待编码BCD信号

output[3:0]DataOut; //编码器余3码输出端,输出位宽为4位

output ERR; //编码错误编码标志端口,1为错误编码

reg [3:0]DataOut=0;

reg  ERR;

//以下自己编写代码,注意添加所需的寄存器或线名称

 always@(DataIn)   //????SEL??????????

case(DataIn) //多路分支语句

4'b0000:begin DataOut=4'b0011;ERR=1'b0;end //SEL=00的时候选择输出A

4'b0001:begin DataOut=4'b0100;ERR=1'b0;end //SEL=01的时候选择输出B

4'b0010:begin DataOut=4'b0101;ERR=1'b0;end //SEL=10的时候选择输出C

4'b0011:begin DataOut=4'b0110;ERR=1'b0;end //SEL=11的时候选择输出D

4'b0100:begin DataOut=4'b0111;ERR=1'b0;end //SEL=00的时候选择输出A

4'b0101:begin DataOut=4'b1000;ERR=1'b0;end //SEL=01的时候选择输出B

4'b0110:begin DataOut=4'b1001;ERR=1'b0;end //SEL=10的时候选择输出C

4'b0111:begin DataOut=4'b1010;ERR=1'b0;end

4'b1000:begin DataOut=4'b1011;ERR=1'b0;end//SEL=00的时候选择输出A

4'b1001:begin DataOut=4'b1100;ERR=1'b0;end //SEL=01的时候选择输出B

4'b1010:begin DataOut=4'b0000;ERR=1'b1;end//SEL=10的时候选择输出C

4'b1011:begin DataOut=4'b0000;ERR=1'b1;end

4'b1100:begin DataOut=4'b0000;ERR=1'b1;end //SEL=00的时候选择输出A

4'b1101:begin DataOut=4'b0000;ERR=1'b1;end //SEL=01的时候选择输出B

4'b1110:begin DataOut=4'b0000;ERR=1'b1;end //SEL=10的时候选择输出C

4'b1111:begin DataOut=4'b0000;ERR=1'b1;end

endcase //多路分支语句结束

endmodule

实验4.4独热码编码器模块设计

根据给定的独热码编码器的功能描述及真值表,完成编码器的行为描述,注意注释代码

独热码编码器Verilog HDL行为描述源代码

文件名:

module lab4_4(DataIn,RST,DataOut); //不要更改模块名称和端口名称,否则影响后面模块调用

input[2:0] DataIn,RST;                  

//3 位输入待编码信号

output[7:0]DataOut;               

//独热码编码输出端,输出位宽为8位

//以下自己编写代码,注意添加所需的寄存器或线名称

reg[7:0] DataOut;

always@(RST,DataOut,DataIn)

begin

if(RST==1)

casex(DataIn)

3'b000:DataOut=8'b00000001;

3'b001:DataOut=8'b00000010;

3'b010:DataOut=8'b00000100;

3'b011:DataOut=8'b00001000;

3'b100:DataOut=8'b00010000;

3'b101:DataOut=8'b00100000;

3'b110:DataOut=8'b01000000;

3'b111:DataOut=8'b10000000;

default:DataOut=8'b00000000;

endcase  

else  DataOut=8'b00000000;

end

endmodule

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值