设计一个判决器,它支持8个人表决,每个人的表决采用10分制,表决平均<阈值(6分)为不合格,>=8为优秀,6~8之间为合格。 判决器端口定义如下: module decider (output[1:0] result, //0:不合格; 1:合格; 2:优秀 input [7:0] in1, input [7:0] in2, input [7:0] in3, input [7:0] in4, input [7:0] in5, input [7:0] in6, input [7:0] in7, input [7:0] in8 );
时间: 2024-03-22 13:39:28 浏览: 18
好的,这是一个简单的判决器设计,代码如下:
```
module decider (
output [1:0] result, // 0:不合格; 1:合格; 2:优秀
input [7:0] in1,
input [7:0] in2,
input [7:0] in3,
input [7:0] in4,
input [7:0] in5,
input [7:0] in6,
input [7:0] in7,
input [7:0] in8
);
reg [31:0] sum;
reg [1:0] avg;
reg [2:0] cnt;
always @(*) begin
sum = in1 + in2 + in3 + in4 + in5 + in6 + in7 + in8;
avg = sum[3:0] >= 32 ? 3'b100 : (sum[3:0] >= 24 ? 3'b010 : 3'b001);
cnt = sum[3:0] >= 32 ? 8 : (sum[3:0] >= 24 ? 7 : 6);
result = avg;
end
endmodule
```
这个判决器有一个输出端口 `result`,它有两个比特位,分别表示不合格(00)、合格(01)和优秀(10)。输入端口有8个,分别为 `in1` 到 `in8`。
判决器的原理很简单,首先将所有人的分数加起来得到总分 `sum`,然后计算平均分 `avg`,最后根据平均分和总人数 `cnt` 判断是否合格。这里采用了一种简单的方法,将平均分分为优秀、合格和不合格三个等级,如果平均分大于等于 8,则为优秀;如果平均分大于等于 6,则为合格;否则为不合格。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)