查看完整版本: [verilog] 指撥開關 驅動3個七段顯示器
頁: [1]

llookkii 發表於 2015-11-17 04:09 PM

[verilog] 指撥開關 驅動3個七段顯示器

本帖最後由 snowflying 於 2015-11-18 02:27 AM 編輯

如題目 利用12個指撥開關 配合RESET鍵
來驅動3個七段顯示器  
下面是我的程式碼 但是只有兩個七段顯示器會亮

請問要怎麼修改 才能亮三個燈?

module Seg72(Seg,S,B0,B1,B2,clk,reset);

        input B0,B1,B2;
        input clk,reset;
        output S;
        output reg Seg;
        
        reg        S;
        reg sel;
        reg Seg0;
        reg Seg1;
        reg Seg2;
        
        
        always@(posedge clk)begin

                if(!reset)begin
                        S<=2'b000;
                        sel<=0;
                end
               
                        else
                                sel<=sel+1;
                                
                if(sel==0)
               
                        S=2'b010;
                        
        
                        else if(sel==1)begin
                                
                                S=2'b100;
                                S=2'b111;
                end
        end
        
        
        
        
        
        always@(B0,B1,B2)begin
        
                case(B0)
                        4'b0000:Seg0=7'b0111111;  
                        4'b0001:Seg0=7'b0000110;        
                        4'b0010:Seg0=7'b1011011;        
                        4'b0011:Seg0=7'b1001111;
                        4'b0100:Seg0=7'b1100110;
                        4'b0101:Seg0=7'b1101101;
                        4'b0110:Seg0=7'b1111101;
                        4'b0111:Seg0=7'b0000111;
                        4'b1000:Seg0=7'b1111111;
                        4'b1001:Seg0=7'b1101111;
                        
                default:Seg0=7'bx;
                        
                endcase
               
                case(B1)
                        4'b0000:Seg1=7'b0111111;  
                        4'b0001:Seg1=7'b0000110;        
                        4'b0010:Seg1=7'b1011011;        
                        4'b0011:Seg1=7'b1001111;
                        4'b0100:Seg1=7'b1100110;
                        4'b0101:Seg1=7'b1101101;
                        4'b0110:Seg1=7'b1111101;
                        4'b0111:Seg1=7'b0000111;
                        4'b1000:Seg1=7'b1111111;
                        4'b1001:Seg1=7'b1101111;
                        
                default:Seg1=7'bx;
               
                endcase
               
                        case(B2)
                        4'b0000:Seg2=7'b0111111;  
                        4'b0001:Seg2=7'b0000110;        
                        4'b0010:Seg2=7'b1011011;        
                        4'b0011:Seg2=7'b1001111;
                        4'b0100:Seg2=7'b1100110;
                        4'b0101:Seg2=7'b1101101;
                        4'b0110:Seg2=7'b1111101;
                        4'b0111:Seg2=7'b0000111;
                        4'b1000:Seg2=7'b1111111;
                        4'b1001:Seg2=7'b1101111;
                        
                default:Seg2=7'bx;
               
                endcase

               
               
                if(sel==0)
                        Seg=Seg0;
                        
               
                        else if(sel==1)begin
                        
                                Seg=Seg1;
                                Seg=Seg2;
                        end
        end
endmodule
        

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

pidn75 發表於 2016-2-11 10:48 AM

if(!reset)begin
                        S<=2'b000; // 應該是3‘b000;
                        sel<=0;
                end

兩個燈亮的原因是當 sel = 1時,只有 Seg1 跟 Seg2 active。

  if(sel==0)
                        Seg=Seg0;
                        
               
                        else if(sel==1)begin
                        
                                Seg=Seg1;
                                Seg=Seg2;
                        end

what is the requirement for this project?
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]