日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]實(shí)例的內(nèi)容及目標(biāo) 1.實(shí)例的主要訓(xùn)練內(nèi)容本實(shí)例通過Verilog HDL語(yǔ)言設(shè)計(jì)一個(gè)簡(jiǎn)易的交通等控制器,實(shí)現(xiàn)一個(gè)具有兩個(gè)方向、共8個(gè)燈并具有時(shí)間倒計(jì)時(shí)功能的交通燈功能。2.實(shí)例目標(biāo)通過本實(shí)例,讀者應(yīng)達(dá)到下面的目標(biāo)。掌握

實(shí)例的內(nèi)容及目標(biāo)

1.實(shí)例的主要訓(xùn)練內(nèi)容

本實(shí)例通過Verilog HDL語(yǔ)言設(shè)計(jì)一個(gè)簡(jiǎn)易的交通等控制器,實(shí)現(xiàn)一個(gè)具有兩個(gè)方向、共8個(gè)燈并具有時(shí)間倒計(jì)時(shí)功能的交通燈功能。

2.實(shí)例目標(biāo)

通過本實(shí)例,讀者應(yīng)達(dá)到下面的目標(biāo)。

掌握Verilog設(shè)計(jì)一個(gè)交通等控制器的方法。

初步掌握Verilog語(yǔ)言的設(shè)計(jì)方法。

原理簡(jiǎn)介

交通燈是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。本實(shí)例就是實(shí)現(xiàn)一個(gè)常見的十字路口交通燈功能。讀者通過學(xué)習(xí)這個(gè)交通燈控制器,可以實(shí)現(xiàn)一個(gè)更加完整的交通燈。例如實(shí)現(xiàn)實(shí)時(shí)配置各種燈的時(shí)間,手動(dòng)控制各個(gè)燈的狀態(tài)等。

一個(gè)十字路口的交通一般分為兩個(gè)方向,每個(gè)方向具有紅燈、綠燈和黃燈3種,另外每個(gè)方向還具有左轉(zhuǎn)燈,因此每個(gè)方向具有4個(gè)燈。

這個(gè)交通燈還為每一個(gè)燈的狀態(tài)設(shè)計(jì)了倒計(jì)時(shí)數(shù)碼管顯示功能??梢詾槊恳粋€(gè)燈的狀態(tài)設(shè)置一個(gè)初始值,燈狀態(tài)改變后,開始按照這個(gè)初始值倒計(jì)時(shí)。倒計(jì)時(shí)歸零后,燈的狀態(tài)將會(huì)改變至下一個(gè)狀態(tài)。

值得注意的是,交通燈兩個(gè)方向的燈的狀態(tài)是相關(guān)的。也就是說,每個(gè)方向的燈的狀態(tài)影響著另外一個(gè)方向的燈的狀態(tài),這樣才能夠協(xié)調(diào)兩個(gè)方向的車流。如果每個(gè)方向的燈是獨(dú)立變化的,那么交通燈就沒有了意義。

如表1所示是兩個(gè)方向(假設(shè)為A,B方向)燈的狀態(tài)的對(duì)應(yīng)情況。

表1 交通燈兩個(gè)方向燈狀態(tài)對(duì)應(yīng)表

方向A

方向B

紅燈亮

黃燈亮或綠燈亮

直行綠燈亮

紅燈亮

黃燈亮

紅燈亮

左轉(zhuǎn)燈

紅燈亮

在實(shí)際的交通系統(tǒng)中,直行綠燈、左轉(zhuǎn)綠燈和紅燈的變化之間都應(yīng)該有黃燈作為緩沖,以保證交通的安全。因此假如我們假設(shè)方向A的黃燈亮的時(shí)間持續(xù)5s,直行綠燈燈亮的時(shí)間持續(xù)40s,左轉(zhuǎn)燈燈亮的時(shí)間持續(xù)15s,則方向B紅燈燈亮的時(shí)間持續(xù)為(直行綠燈+黃燈+左轉(zhuǎn)綠燈+黃燈)所消耗的時(shí)間,一共為65s。

同樣假設(shè)方向B黃燈亮的時(shí)間持續(xù)5s,直行綠燈燈亮的時(shí)間持續(xù)30s,左轉(zhuǎn)燈燈亮的時(shí)間持續(xù)15s,則方向B紅燈燈亮的時(shí)間持續(xù)為(直行綠燈+黃燈+左轉(zhuǎn)綠燈+黃燈)所消耗的時(shí)間,一共為55s。

具體時(shí)間參數(shù)的設(shè)定讀者可以根據(jù)需要進(jìn)行修改,但是一定要保證兩個(gè)方向的燈的狀態(tài)符合表1的要求。

代碼分析

下面給出交通燈控制器的Verilog HDL源代碼,首先介紹交通燈端口信號(hào)的定義及說明,讀者可以通過這些端口將此交通燈模塊實(shí)例化至自己的工程設(shè)計(jì)中。

  • CLK:同步時(shí)鐘。
  • EN:使能信號(hào),為高電平時(shí),控制器開始工作。
  • LAMPA:控制A方向4盞燈的狀態(tài);其中,LAMPA0~LAMPA3分別控制A 方向的左拐燈、綠燈、黃燈和紅燈。
  • LAMPB:控制B方向4盞燈的狀態(tài);其中,LAMPB0~LAMPB3分別控制B 方向的左拐燈、綠燈、黃燈和紅燈。
  • ACOUNT:用于A方向燈的時(shí)間顯示,8位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管。
  • BCOUNT:用于B方向燈的時(shí)間顯示,8位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管。

 

下面是交通燈的Verilog HDL源代碼及說明。

module traffic(CLK,EN,LAMPA,LAMPB,ACOUNT,BCOUNT);     //端口說明

     output[7:0] ACOUNT,BCOUNT;

     output[3:0] LAMPA,LAMPB;

     input CLK,EN;                                  //內(nèi)部信號(hào)說明

     reg[7:0] numa,numb;                         //ACOUNT和BCOUNT的內(nèi)部信號(hào)

     reg tempa,tempb;                

     reg[2:0] counta,countb;                    //方向A和方向B的燈的狀態(tài)

     reg[7:0] ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;

     reg[3:0] LAMPA,LAMPB;

    

     //設(shè)置各交通燈的持續(xù)時(shí)間初始化值,紅燈的值由另一個(gè)方向的黃燈和綠燈計(jì)算得出。

     always @(EN)

          if(!EN) begin                //使能信號(hào)EN無效時(shí),對(duì)交通燈的計(jì)數(shù)值進(jìn)行初始化

               ared       <=8'd55;    //55 s , 30 + 5 + 15 + 5

               ayellow    <=8'd5;     //5 s

               agreen     <=8'd40;    //40 s

               aleft      <=8'd15;     //15 s

               bred      <=8'd65;      //65 s , 40 + 5 + 15 + 5

               byellow    <=8'd5;      //5 s

               bleft      <=8'd15;     //15 s

               bgreen     <=8'd30;     //30 s

          end

          assign ACOUNT=numa;                   //8位數(shù)碼管輸出

     assign BCOUNT=numb;                       //8位數(shù)碼管輸出

          //控制A方向4種燈的模塊

     always @(posedge CLK) begin        

          if(EN) begin                         //使能有效時(shí),交通燈開始工作

               if(!tempa) begin

                    tempa<=1;

                    case(counta)               //控制燈狀態(tài)的順序

                         0: begin              //狀態(tài)0

                              numa<=agreen;    //直行綠燈亮

                              LAMPA<=2;          //輸出0010

                              counta<=1;         //進(jìn)入下一個(gè)狀態(tài)

                         end

                         1: begin                //狀態(tài)1

                              numa<=ayellow; //黃燈亮

                              LAMPA<=4;          //輸出0100

                              counta<=2;         //進(jìn)入下一個(gè)狀態(tài)

                         end

                         2: begin                 //狀態(tài)2

                              numa<=aleft;       //左轉(zhuǎn)綠燈亮

                              LAMPA<=1;          //輸出0001

                              counta<=3;         //進(jìn)入下一個(gè)狀態(tài)

                         end

 

                         3: begin                 //狀態(tài)3

                              numa<=ayellow;    //黃燈亮

                              LAMPA<=4;          //輸出0100

                              counta<=4;         //進(jìn)入下一個(gè)狀態(tài)

                         end

                         4: begin                 //狀態(tài)4

                              numa<=ared;        //紅燈亮

                              LAMPA<=8;          //輸出1000

                              counta<=0;         //進(jìn)入下一個(gè)狀態(tài)(狀態(tài)0)

                         end

                         default:                 //默認(rèn)狀態(tài)

                              LAMPA<=8;          //紅燈亮,輸出1000

                    endcase

               end

               else begin                    //每一個(gè)狀態(tài)的倒計(jì)時(shí)

                   if(numa>1)                //判斷倒計(jì)時(shí)未歸零時(shí)分別對(duì)高地位進(jìn)行遞減

                         if(numa[3:0]==0) begin

                              numa[3:0]<=4'b1001;

                              numa[7:4]<=numa[7:4]-1;

                         end

                         else

                              numa[3:0]<=numa[3:0]-1;

                    if (numa==2)

                         tempa<=0;   //倒計(jì)時(shí)結(jié)束,返回?zé)魻顟B(tài)變化判斷,將進(jìn)入下一個(gè)狀態(tài)

               end

          end

          else begin

               LAMPA<=4'b1000;         //使能無效時(shí),紅燈亮

               counta<=0;               //返回方向A的狀態(tài)0(綠燈狀態(tài))

               tempa<=0;                //進(jìn)入狀態(tài)變化判斷

          end

     end

         //控制B方向4種燈的模塊,模塊的語(yǔ)言描述與方向A的描述基本一致,這里不再重復(fù)注釋

     always @(posedge CLK) begin

          if (EN) begin

               if(!tempb) begin

                    tempb<=1;

                    case (countb)

                         0: begin

                              numb<=bred;

                              LAMPB<=8;

                              countb<=1;

                         end

                         1: begin

                              numb<=bgreen;

                              LAMPB<=2;

                              countb<=2;

                         end

                         2: begin

                              numb<=byellow;

                              LAMPB<=4;

                              countb<=3;

                         end

                         3: begin

                              numb<=bleft;

                              LAMPB<=1;

                              countb<=4;

                         end

                         4: begin

                              numb<=byellow;

                              LAMPB<=4;

                              countb<=0;

                         end

                         default:

                              LAMPB<=8;

                    endcase

               end

               else begin //倒計(jì)時(shí)

                    if(numb>1)

                         if(!numb[3:0]) begin

                              numb[3:0]<=9;

                              numb[7:4]<=numb[7:4]-1;

                         end

                    else

                         numb[3:0]<=numb[3:0]-1;

                    if(numb==2)

                         tempb<=0;

               end

          end

          else begin

               LAMPB<=4'b1000;

               tempb<=0;

               countb<=0;

          end

     end

endmodule

 

通過上面這個(gè)Verilog HDL模塊,基本實(shí)現(xiàn)了交通燈控制器的基本功能。讀者可將此設(shè)計(jì)應(yīng)用于實(shí)際的硬件系統(tǒng)中,通過晶振、FPGA、開關(guān)、LED燈及數(shù)碼管等資源即可完成硬件實(shí)現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移遠(yuǎn)通信宣布,其自研藍(lán)牙協(xié)議棧DynaBlue率先通過藍(lán)牙技術(shù)聯(lián)盟(SIG)BQB 6.1標(biāo)準(zhǔn)認(rèn)證。作為移遠(yuǎn)深耕短距離通信...

關(guān)鍵字: 藍(lán)牙協(xié)議棧 移遠(yuǎn)通信 COM BSP

上海2025年9月9日 /美通社/ -- 為全面落實(shí)黨中央、國(guó)務(wù)院和上海市委、市政府關(guān)于加快發(fā)展人力資源服務(wù)業(yè)的決策部署,更好發(fā)揮人力資源服務(wù)業(yè)賦能百業(yè)作用,8月29日,以"AI智領(lǐng) HR智鏈 靜候你來&quo...

關(guān)鍵字: 智能體 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付與一汽出行達(dá)成合作,為其自主研發(fā)的"旗馭車管"車輛運(yùn)營(yíng)管理平臺(tái)提供全流程支付通道及技術(shù)支持。此次合作不僅提升了平臺(tái)對(duì)百余家企業(yè)客戶的運(yùn)營(yíng)管理效率...

關(guān)鍵字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會(huì)、上海市發(fā)展和改革委員會(huì)、上海市商務(wù)委員會(huì)、上海市教育委員會(huì)、上海市科學(xué)技術(shù)委員會(huì)指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會(huì)展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動(dòng)駕駛

推進(jìn)卓越制造,擴(kuò)大產(chǎn)能并優(yōu)化布局 蘇州2025年9月5日 /美通社/ --?耐世特汽車系統(tǒng)與蘇州工業(yè)園區(qū)管委會(huì)正式簽署備忘錄,以設(shè)立耐世特亞太總部蘇州智能制造項(xiàng)目。...

關(guān)鍵字: 智能制造 BSP 汽車系統(tǒng) 線控

慕尼黑和北京2025年9月4日 /美通社/ -- 寶馬集團(tuán)宣布,新世代首款量產(chǎn)車型BMW iX3將于9月5日全球首發(fā),9月8日震撼亮相慕尼黑車展。中國(guó)專屬版車型也將在年內(nèi)與大家見面,2026年在國(guó)內(nèi)投產(chǎn)。 寶馬集團(tuán)董事...

關(guān)鍵字: 寶馬 慕尼黑 BSP 數(shù)字化

北京2025年9月4日 /美通社/ --?在全球新一輪科技革命與產(chǎn)業(yè)變革的澎湃浪潮中,人工智能作為引領(lǐng)創(chuàng)新的核心驅(qū)動(dòng)力,正以前所未有的深度與廣度重塑各行業(yè)發(fā)展格局。體育領(lǐng)域深度融入科技變革浪潮,駛?cè)霐?shù)字化、智能化轉(zhuǎn)型快車...

關(guān)鍵字: 人工智能 智能體 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企業(yè)在上海聯(lián)合發(fā)起并成功舉辦"2025 Ethernet-APL 技術(shù)應(yīng)用發(fā)展大會(huì)"。會(huì)議以"破界?融合...

關(guān)鍵字: ETHERNET 智能未來 BSP 工業(yè)通信
關(guān)閉