国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5572|回復: 9
打印 上一主題 下一主題

[提問] 用VHDL語言編寫程序

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2012-11-28 13:07:13 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
交通燈控制器
系統設計要求:
在十字路口,東西南北各有一組紅、黃、綠燈,其控制功能:

1)復位狀態東西南北黃燈亮。

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


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

5)東西兩側黃燈亮(準備變紅燈),南北兩側紅燈亮。
沙發
發表于 2012-11-29 16:39:04 | 只看該作者
這個我還真的是不懂的
板凳
發表于 2012-11-30 10:02:14 | 只看該作者
這是一個狀態機問題,4狀態輸入,12狀態輸出。
地板
發表于 2012-11-30 10:28:21 | 只看該作者
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;                    -- 系統復位控制信號,低電平有效。
--
--                各信號下標3、2、1、0對應方向東、南、西、北。
--                輸出0,對應信號燈亮;輸出1,對應信號燈滅。
--
                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        -- 復位狀態東西南北黃燈亮。
                                   "1111"                when State = "00" else        -- 東西兩側紅燈亮,南北兩側綠燈亮。
                                   "1010"                when State = "01" else        -- 東西兩側紅燈亮,南北兩側黃燈亮(準備變紅燈)。
                                   "1111"                when State = "10" else        -- 東西兩側綠燈亮,南北兩側紅燈亮。
                                   "0101"                when State = "11" else        -- 東西兩側黃燈亮(準備變紅燈),南北兩側紅燈亮。
                                   "0000";
        Red                <= "1111"                when nRST  = '0'  else        -- 復位狀態東西南北黃燈亮。
                                   "0101"                when State = "00" else        -- 東西兩側紅燈亮,南北兩側綠燈亮。
                                   "0101"                when State = "01" else        -- 東西兩側紅燈亮,南北兩側黃燈亮(準備變紅燈)。
                                   "1010"                when State = "10" else        -- 東西兩側綠燈亮,南北兩側紅燈亮。
                                   "1010"                when State = "11" else        -- 東西兩側黃燈亮(準備變紅燈),南北兩側紅燈亮。
                                   "1111";
        Blue                <= "1111"                when nRST  = '0'  else        -- 復位狀態東西南北黃燈亮。
                                   "1010"                when State = "00" else        -- 東西兩側紅燈亮,南北兩側綠燈亮。
                                   "1111"                when State = "01" else        -- 東西兩側紅燈亮,南北兩側黃燈亮(準備變紅燈)。
                                   "0101"                when State = "10" else        -- 東西兩側綠燈亮,南北兩側紅燈亮。
                                   "1111"                when State = "11" else        -- 東西兩側黃燈亮(準備變紅燈),南北兩側紅燈亮。
                                   "1111";
end Behavioral;
地下室
 樓主| 發表于 2012-12-2 14:52:07 | 只看該作者
謝謝大家嘍!
6
發表于 2012-12-4 23:46:28 | 只看該作者
student homework?
7
發表于 2012-12-17 20:27:56 | 只看該作者
寫了一個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
8
發表于 2012-12-17 20:28:18 | 只看該作者
這個是測試程序

`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
9
發表于 2012-12-27 08:31:09 | 只看該作者
學習了。。。。。。。。。。。。。。。。。。。。
10
發表于 2013-8-21 08:47:20 | 只看該作者
復制下來!!!!!!!!我自己好好學習!!!!!!!!!!!!!!!!!!!!

謝謝.jpg (8.65 KB)

謝謝.jpg
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 台湾黄三级高清在线观看播放 | 国产一区 在线播放 | 亚洲福利视频一区二区三区 | 9999视频| 无限资源第一页2018在线播放 | 日韩最新视频一区二区三 | 中文在线最新版天堂 | 亚洲 欧美 日韩 丝袜 另类 | 最近更新2019中文字幕6 | 亚洲免费黄色片 | 老外黑人一级毛片 | 亚洲4区 | 国产91av视频在线观看 | 日韩黄色中文字幕 | 国产亚洲日本人在线观看 | 国产一级一片免费播放i | 久久精品国产亚洲婷婷 | 手机看片亚洲 | 欧美日韩成人在线观看 | 国产成人污污网站在线观看 | 日韩第九页 | 两个人中字在线观看 | 一级成人a做片免费 | 国产精品东方伊甸园 | 激情啪啪精品一区二区 | 欧美一区二区三区四区五区六区 | 日本视频www色| 久久99精品免费视频 | 久久久91精品国产一区二区 | 国产91精品在线播放 | 日韩美一区二区三区 | 成人精品亚洲人成在线 | 亚洲视频一区二区在线观看 | 亚洲图片在线 | 在线日韩欧美一区二区三区 | 久久精品一区二区 | 成都4片p高清完整版hd免费 | 免费大片国产在线观看下载 | 麻豆短视频在线观看 | 中文字幕久荜一区日本精品 | 国产精品对白交换视频 |