色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

電子工程網(wǎng)

標(biāo)題: 用VHDL語言編寫程序 [打印本頁]

作者: lvqing201205    時間: 2012-11-28 13:07
標(biāo)題: 用VHDL語言編寫程序
交通燈控制器
系統(tǒng)設(shè)計要求:
在十字路口,東西南北各有一組紅、黃、綠燈,其控制功能:

1)復(fù)位狀態(tài)東西南北黃燈亮。

(2)東西兩側(cè)紅燈亮,南北兩側(cè)綠燈亮
  (3)東西兩側(cè)紅燈亮,南北兩側(cè)黃燈亮(準(zhǔn)備變紅燈)。


4)東西兩側(cè)綠燈亮,南北兩側(cè)紅燈亮。

5)東西兩側(cè)黃燈亮(準(zhǔn)備變紅燈),南北兩側(cè)紅燈亮。

作者: pcbqc    時間: 2012-11-29 16:39
這個我還真的是不懂的
作者: yhpeng    時間: 2012-11-30 10:02
這是一個狀態(tài)機問題,4狀態(tài)輸入,12狀態(tài)輸出。
作者: yhpeng    時間: 2012-11-30 10:28
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use ieee.numeric_std.all;

entity CrossLED is
   Port (
      nRST:    in    std_logic;                    -- 系統(tǒng)復(fù)位控制信號,低電平有效。
--
--                各信號下標(biāo)3、2、1、0對應(yīng)方向東、南、西、北。
--                輸出0,對應(yīng)信號燈亮;輸出1,對應(yīng)信號燈滅。
--
                State:        in                std_logic_vector(1 downto 0);        --
                Yellow:        out        std_logic_vector(3 downto 0);
                Red:                out        std_logic_vector(3 downto 0);
                Blue:                out        std_logic_vector(3 downto 0)
   );
end CrossLED;

architecture Behavioral of CrossLED is
begin
        Yellow        <= "0000"                when nRST  = '0'  else        -- 復(fù)位狀態(tài)東西南北黃燈亮。
                                   "1111"                when State = "00" else        -- 東西兩側(cè)紅燈亮,南北兩側(cè)綠燈亮。
                                   "1010"                when State = "01" else        -- 東西兩側(cè)紅燈亮,南北兩側(cè)黃燈亮(準(zhǔn)備變紅燈)。
                                   "1111"                when State = "10" else        -- 東西兩側(cè)綠燈亮,南北兩側(cè)紅燈亮。
                                   "0101"                when State = "11" else        -- 東西兩側(cè)黃燈亮(準(zhǔn)備變紅燈),南北兩側(cè)紅燈亮。
                                   "0000";
        Red                <= "1111"                when nRST  = '0'  else        -- 復(fù)位狀態(tài)東西南北黃燈亮。
                                   "0101"                when State = "00" else        -- 東西兩側(cè)紅燈亮,南北兩側(cè)綠燈亮。
                                   "0101"                when State = "01" else        -- 東西兩側(cè)紅燈亮,南北兩側(cè)黃燈亮(準(zhǔn)備變紅燈)。
                                   "1010"                when State = "10" else        -- 東西兩側(cè)綠燈亮,南北兩側(cè)紅燈亮。
                                   "1010"                when State = "11" else        -- 東西兩側(cè)黃燈亮(準(zhǔn)備變紅燈),南北兩側(cè)紅燈亮。
                                   "1111";
        Blue                <= "1111"                when nRST  = '0'  else        -- 復(fù)位狀態(tài)東西南北黃燈亮。
                                   "1010"                when State = "00" else        -- 東西兩側(cè)紅燈亮,南北兩側(cè)綠燈亮。
                                   "1111"                when State = "01" else        -- 東西兩側(cè)紅燈亮,南北兩側(cè)黃燈亮(準(zhǔn)備變紅燈)。
                                   "0101"                when State = "10" else        -- 東西兩側(cè)綠燈亮,南北兩側(cè)紅燈亮。
                                   "1111"                when State = "11" else        -- 東西兩側(cè)黃燈亮(準(zhǔn)備變紅燈),南北兩側(cè)紅燈亮。
                                   "1111";
end Behavioral;

作者: lvqing201205    時間: 2012-12-2 14:52
謝謝大家嘍!
作者: mesecose    時間: 2012-12-4 23:46
student homework?
作者: dingdake    時間: 2012-12-17 20:27
寫了一個verilog版,僅供樓主參考.
module traffic_led(rst_n, clk, r1, y1, g1, r2, y2,g2);
input rst_n, clk;
output  r1, y1, g1, r2, y2,g2;
reg r1, y1, g1, r2, y2,g2;
reg [4:0] state, nextstate;

parameter  s0 = 5'b00001, s1 = 5'b00010, s2 = 5'b00100, s3 = 5'b01000, s4 = 5'b10000;

always @(posedge clk or negedge rst_n)
begin
    if(rst_n == 0)
         begin  
           state <= s0;
         end
         else
         begin
           state <= nextstate;
         end
end
always @(state)
begin
  case(state)
    s0: begin
               r1 <= 0;
                         y1 <= 1;
                         g1 <= 0;
                         r2 <= 0;
                         y2 <= 1;
                         g2 <= 0;
                         nextstate <= s1;
        end
         s1: begin
               r1 <= 1;
                         y1 <= 0;
                         g1 <= 0;
                         r2 <= 0;
                         y2 <= 0;
                         g2 <= 1;
                         nextstate <= s2;
        end
         s2: begin
               r1 <= 1;
                         y1 <= 0;
                         g1 <= 0;
                         r2 <= 0;
                         y2 <= 1;
                         g2 <= 0;
                         nextstate <= s3;
        end
         s3: begin
               r1 <= 0;
                         y1 <= 0;
                         g1 <= 1;
                         r2 <= 1;
                         y2 <= 0;
                         g2 <= 0;
                         nextstate <= s4;
        end
         s4: begin
               r1 <= 0;
                         y1 <= 1;
                         g1 <= 0;
                         r2 <= 1;
                         y2 <= 0;
                         g2 <= 0;
                         nextstate <= s1;
        end
         default: nextstate <= s0;
        endcase
     
end
endmodule
作者: dingdake    時間: 2012-12-17 20:28
這個是測試程序

`timescale  100ns/10ns
module testbrench;
reg rst_n, clk;
wire r1, y1, g1, r2, y2,g2;

traffic_led tl1(rst_n, clk, r1, y1, g1, r2, y2,g2);
initial
begin
  rst_n = 1;
  clk = 0;
end
always
begin
  #5 clk = ~clk;
end
initial
begin
#10 rst_n = 0;
#20 rst_n = 1;
end
endmodule
作者: david-xia    時間: 2012-12-27 08:31
學(xué)習(xí)了。。。。。。。。。。。。。。。。。。。。
作者: spy007868    時間: 2013-8-21 08:47
復(fù)制下來。。。。。。!我自己好好學(xué)習(xí)!。。。。。。。。。。。。。。。。。!

謝謝.jpg (8.65 KB)

謝謝.jpg





歡迎光臨 電子工程網(wǎng) (http://m.54549.cn/) Powered by Discuz! X3.4