国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于FPGA和Verilog實(shí)現(xiàn)的9層電梯控制器仿真設(shè)計(jì)

這篇具有很好參考價(jià)值的文章主要介紹了基于FPGA和Verilog實(shí)現(xiàn)的9層電梯控制器仿真設(shè)計(jì)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

資源下載地址:https://download.csdn.net/download/sheziqiong/85628810
資源下載地址:https://download.csdn.net/download/sheziqiong/85628810

數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計(jì)之電梯控制器設(shè)計(jì)

一、設(shè)計(jì)目的及要求

設(shè)計(jì)要求

  1. 電梯最少可以往返于0—9層樓。

  2. 乘客要去的樓層數(shù)A可手動(dòng)輸入并顯示,按取消鍵可清除本次輸入。

  3. 可自動(dòng)顯示電梯運(yùn)行的樓層數(shù)B

  4. 當(dāng)A>B時(shí),電梯上升;

    當(dāng)A<B時(shí),電梯下降;

    當(dāng)A=B時(shí),電梯停止運(yùn)行并開門;

  5. 可以自動(dòng)顯示電梯每一次啟停之間的運(yùn)行時(shí)間

  6. 任何時(shí)候按下復(fù)位鍵,電梯回到1層。

設(shè)計(jì)目的

目的是對(duì)“數(shù)字邏輯”課程內(nèi)容全面、系統(tǒng)的總結(jié)、鞏固和提高。根據(jù)數(shù)字邏輯的特點(diǎn),選擇相應(yīng)的題目,在老師的指導(dǎo)下,由學(xué)生獨(dú)立完成。通過(guò)實(shí)驗(yàn)使我們掌握數(shù)字邏輯電路設(shè)計(jì)的基本方法和技巧,正確運(yùn)用vivado軟件及實(shí)驗(yàn)室多功能學(xué)習(xí)機(jī)硬件平臺(tái),完成所選題目的設(shè)計(jì)任務(wù),并掌握數(shù)字邏輯電路測(cè)試的基本方法,訓(xùn)練學(xué)生的動(dòng)手能力和思維方法。通過(guò)實(shí)驗(yàn),一方面提高運(yùn)用數(shù)字邏輯電路解決實(shí)際問(wèn)題的能力,另一方面使學(xué)生更深入的理解所學(xué)知識(shí),為以后的計(jì)算機(jī)硬件課程的學(xué)習(xí)奠定良好的基礎(chǔ)。

二、工作原理和系統(tǒng)框圖

工作原理

本實(shí)驗(yàn)使用板上的四個(gè)開關(guān)來(lái)模擬電梯的叫梯按鍵,其中每個(gè)按鈕有兩個(gè)狀態(tài)0和1,4個(gè)組成了電梯的叫樓層,將這4位二進(jìn)制數(shù)字看成8421BCD碼,轉(zhuǎn)換成十進(jìn)制數(shù)字。

對(duì)于電梯按鍵,當(dāng)沒(méi)用用戶叫梯時(shí),叫梯的數(shù)碼管BIT5(G1)顯示為0;當(dāng)有用戶叫梯時(shí),控制叫梯的數(shù)碼管顯示為用戶所叫的電梯樓層。

電梯運(yùn)行時(shí),顯示電梯運(yùn)行層數(shù)的數(shù)碼管BIT1(G2)顯示電梯運(yùn)行的層數(shù),假設(shè)電梯每運(yùn)行一層的時(shí)間為1s,則該數(shù)碼管BIT1(G2)數(shù)碼管在轉(zhuǎn)變?yōu)椤?”之前顯示的數(shù)字即為電梯運(yùn)行的時(shí)間。

當(dāng)SW1-N4 為1時(shí),電梯回到0層。

系統(tǒng)框圖

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)
(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)

三、各部分模塊具體功能及設(shè)計(jì)思路

各部分選定方案

1.目的:電梯可以往返于0~9層樓,顯示當(dāng)前電梯的樓層B

? 實(shí)現(xiàn)方法:用計(jì)數(shù)器來(lái)實(shí)現(xiàn)0~9之間的變化,并通過(guò)譯碼器接到數(shù)碼管(BIT8)上顯示

2.目的:手動(dòng)輸入要去的樓層A ,按取消鍵可清除本次輸入。

? 實(shí)現(xiàn)方法:A 用四個(gè)開關(guān)來(lái)表示,通過(guò)譯碼器接到7段數(shù)碼管(BIT5)上顯示相應(yīng)的樓層數(shù)A。

3.目的:當(dāng)A>B 時(shí),電梯上升;當(dāng)A<B 時(shí),電梯下降;當(dāng)A=B 時(shí),電梯停止運(yùn)行。

? 實(shí)現(xiàn)方法:通過(guò)比較器來(lái)比較A 與B 的大小,若A>B 電梯上升,否則電梯下降,

4.目的:可以自動(dòng)顯示電梯每一次啟停之間的運(yùn)行時(shí)間。

? 實(shí)現(xiàn)方法;繼承3)的實(shí)現(xiàn)方法,若A>B 則計(jì)數(shù)器正向計(jì)數(shù),若A<B 則計(jì)數(shù)器逆向計(jì)數(shù)。

5.目的:按下復(fù)位鍵時(shí),電梯回到0層

? 實(shí)現(xiàn)方法:當(dāng)復(fù)位啟動(dòng)時(shí),則不論A 怎么輸入,電梯都停在第0層。

相關(guān)模塊

比較器(Compare)

輸入電梯所在樓層B ,乘客要去的樓層 A ,輸出O1O2,當(dāng)A>B 時(shí),輸出01;當(dāng)A<B 時(shí),輸出10;當(dāng)A=B 時(shí),輸出00;

代碼:

module Compare(A,B,O1,O2);
			input [3:0]A;//要去的樓層A
			input [3:0]B;//電梯所在樓層B
			output O1;
			output O2;
			assign O1 = (A>B);//A>B 輸出01
			assign O2 = (A<B);	//A<B 輸出10
		endmodule

復(fù)位模塊(IfReset)

輸入reset 和In ,In 是一個(gè)4位的數(shù)組。當(dāng)reset=1時(shí),Out=0,電梯無(wú)論在幾樓都會(huì)回到0樓;當(dāng)reset==0時(shí),輸出Out=In ,接著運(yùn)行下面的功能。

代碼:

module IfReset (In, Out, reset);
		input [3:0] In;
		input reset;
		output reg [3:0]Out;
		always begin #2
			if(reset)
				Out = 0;//如果reset = 1 則清零
			else 
				Out = In;//如果reset!=1 則輸入即為輸出
		end
	endmodule

節(jié)拍發(fā)生器(BeatGenerator)

由于數(shù)碼管只有七個(gè)管腳,AB 不能同時(shí)顯示在同一個(gè)數(shù)碼管上,所以通過(guò)節(jié)拍發(fā)生器來(lái)選擇顯示。因?yàn)闀r(shí)鐘頻率高達(dá)100MHz,所以肉眼所見的是A 和B 同時(shí)顯示。

代碼:

module BeatGenerator(in1,in2,clk,sec,Out);
			input [6:0]in1;//輸入A
			input [6:0]in2;//輸入B
			input clk;//時(shí)鐘信號(hào)
			output reg [1:0]sec;
			output reg [6:0]Out;
			reg [7:0]ControlLED;//七段數(shù)碼管
			initial 			//初始化變量
begin
					sec = 1;
					Out = in1;
					ControlLED = 0;
				end
			always @(posedge clk)
				begin
					ControlLED = ControlLED + 1;
					if(sec==1) //分頻顯示
						begin
							Out =in2;
						end
					else 
						begin
							Out=in1;
						end
				end
			always @(negedge ControlLED)
				begin
				if(sec==1)
					begin
						sec=2;
					end
				else
					begin
						sec=1;
					end
				end
			endmodule

分頻模塊(FrequenceDivide)

將100MHz的時(shí)鐘信號(hào)轉(zhuǎn)換為肉眼可見的信號(hào)

代碼:

module FrequenceDivide(inClk, outClk);
				input inClk; //輸入時(shí)鐘信號(hào)
				output outClk;//輸出時(shí)鐘信號(hào)
				reg [31:0]timeClk;//暫存時(shí)鐘信號(hào)(32位)
				assign outClk = timeClk[19];//每2^20ns 時(shí)鐘沿變化一次
				initial begin
					timeClk = 0;
				end
				always@(posedge inClk)
					begin
						timeClk = timeClk + 1;
					end
			endmodule

譯碼器(Decoder)

將4位的A和B轉(zhuǎn)換為七段數(shù)碼管顯示對(duì)應(yīng)的數(shù)字

代碼:

module Decoder(floor, outLED, on);
				input [3:0]floor;//樓層
				input on;//運(yùn)行狀態(tài) 運(yùn)行on=1,未運(yùn)行on=0
				output reg[6:0]outLED;//輸出的顯示
				always @(*)
					begin
						if(!on)
						outLED=7’b0000001;//未運(yùn)行狀態(tài)
						else
							case(floor)
								4’b0000:outLED=7’b1111110; //0
4’b0001:outLED=7’b0110000; //1
4’b0010:outLED=7’b1101101; //2
4’b0011:outLED=7’b1111001; //3
4’b0100:outLED=7’b0110011; //4
4’b0101:outLED=7’b1011011; //5
4’b0110:outLED=7’b1011111; //6
4’b0111:outLED=7’b1110000; //7
4’b1000:outLED=7’b1111111; //8
4’b1001:outLED=7’b1111011; //9
default: outLED= 7’b1001111; /E(error) endcase
						end
					endmodule

計(jì)時(shí)器(clock)

計(jì)時(shí)器有一個(gè)暫停鍵與計(jì)數(shù)器的使能端相連,當(dāng)switch1=switch0=0時(shí),計(jì)時(shí)器的暫停鍵有效,計(jì)時(shí)器不計(jì)時(shí);當(dāng)switch1=1或switch0=1,計(jì)時(shí)器工作,且每次計(jì)時(shí)完成后歸零,并從下一次電梯開始工作時(shí)計(jì)時(shí)。

代碼:

module clock(
    input show,
    input clk,
    input pause,
    input rst,
    output reg sm_bit,
    output reg[6:0]sm_seg
);
reg [3:0]timesec0;
initial 
    begin
        sm_bit=1;
        sm_seg=1;
        timesec0=0;
    end
always @(posedge clk) 
begin
if(pause) 
    begin
        if(timesec0==9)
        	timesec0=0;
        else
        	timesec0=timesec0+1;
        end
    end
always@(posedge show)
begin
    case(timesec0)
        0:sm_seg= 7’b1111110; //0
        1:sm_seg= 7’b0110000; //1
        2:sm_seg= 7’b1101101; //2
        3:sm_seg= 7’b1111001; //3
        4:sm_seg= 7’b0110011; //4
        5:sm_seg= 7’b1011011; //5
        6:sm_seg= 7’b1011111; //6
        7:sm_seg= 7’b1110000; //7
        8:sm_seg= 7’b1111111; //8
        9:sm_seg= 7’b1111011; //9

    default: sm_seg= 7’b0000000; //空白
	endcase
end
endmodule

可逆計(jì)數(shù)器

module counter(
    input clk,
    input switch0,
    input switch1,
    output reg[3:0] sl_reg
);
	initial begin
	sl_reg = 0;
end
always @(posedge clk)
    begin
        case({switch0,switch1})
        2’b01:sl_reg=sl_reg-1;
        2’b10:sl_reg=sl_reg+1;
        default:;
    	endcase
    end
endmodule

四、調(diào)試過(guò)程

  1. 檢查Verilog 代碼是否有語(yǔ)法錯(cuò)誤(由vivado 自動(dòng)檢測(cè))
  2. 檢查各個(gè)IP 核的功能是否正確,看它的仿真波形圖是否正確
  3. 檢查邏輯圖中的IP 核連線是否正確,人工代特值進(jìn)入電路看是否有輸出錯(cuò)誤。
  4. 至此調(diào)試過(guò)程結(jié)束

附錄:各模塊仿真結(jié)果

1比較器

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)

2復(fù)位模塊

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)

3節(jié)拍發(fā)生器

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)

4譯碼器

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)

5計(jì)時(shí)器

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)

6可逆計(jì)數(shù)器

(1) 電梯最少可以往返于 0—9 層樓,任何時(shí)候按下復(fù)位鍵,電梯回到 1 層。 (2) 乘客,fpga開發(fā),Verilog,9層電梯控制,電梯控制器仿真,課程設(shè)計(jì)
資源下載地址:https://download.csdn.net/download/sheziqiong/85628810
資源下載地址:https://download.csdn.net/download/sheziqiong/85628810文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-785705.html

到了這里,關(guān)于基于FPGA和Verilog實(shí)現(xiàn)的9層電梯控制器仿真設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • m基于FPGA的FOC控制器verilog實(shí)現(xiàn),包括CLARK,PARK,PID及SVPWM,含testbench

    m基于FPGA的FOC控制器verilog實(shí)現(xiàn),包括CLARK,PARK,PID及SVPWM,含testbench

    目錄 1.算法仿真效果 2.算法涉及理論知識(shí)概要 3.MATLAB核心程序 4.完整算法代碼文件 Quartus II 12.1(64-Bit) ModelSim-Altera 6.6d?Starter Edition 仿真結(jié)果如下: 整個(gè)系統(tǒng)的結(jié)構(gòu)如下所示: 1、采集到兩相電流 2、經(jīng)過(guò)clarke變換后得到兩軸正交電流量, 3、經(jīng)過(guò)旋轉(zhuǎn)變換后得到正交的電流量

    2024年02月15日
    瀏覽(21)
  • 基于FPGA的電風(fēng)扇控制器verilog,視頻/代碼

    基于FPGA的電風(fēng)扇控制器verilog,視頻/代碼

    名稱:基于FPGA的電風(fēng)扇控制器verilog 軟件:QuartusII 語(yǔ)言:Verilog 代碼功能: 基于FPGA的電風(fēng)扇控制器 ?運(yùn)用 EDA SOPO實(shí)驗(yàn)開發(fā)系統(tǒng)設(shè)計(jì)一個(gè)基于FPGA的電風(fēng)扇定時(shí)開關(guān)控制器,能實(shí)現(xiàn)手動(dòng)和自動(dòng)模式之間的切換。要求:? (1)KI為電源開關(guān)由電源開關(guān)控制電風(fēng)扇的開關(guān),即當(dāng)K1為高電平“

    2024年02月07日
    瀏覽(22)
  • 基于EDA的電烤箱控制器設(shè)計(jì)Verilog代碼Quartus 新起點(diǎn)FPGA開發(fā)板

    基于EDA的電烤箱控制器設(shè)計(jì)Verilog代碼Quartus 新起點(diǎn)FPGA開發(fā)板

    名稱:基于EDA的電烤箱控制器設(shè)計(jì)Verilog代碼Quartus? 新起點(diǎn)FPGA開發(fā)板(文末獲取) 軟件:Quartus 語(yǔ)言:Verilog 代碼功能: 基于EDA的電烤箱控制器設(shè)計(jì) 主要研究?jī)?nèi)容 設(shè)計(jì)一個(gè)電烤箱控制器電路,要求具有三檔加熱功能,分別表示燒烤加熱為低火、中火、高火。具有復(fù)位開關(guān)、啟動(dòng)

    2024年02月01日
    瀏覽(31)
  • 微波爐控制器Verilog代碼Quartus仿真

    微波爐控制器Verilog代碼Quartus仿真

    名稱:微波爐控制器Verilog代碼Quartus仿真(文末獲取) 軟件:Quartus 語(yǔ)言:Verilog 代碼功能: 微波爐控制器 用芯片Altera Cyclone IV FPGA作為控制芯片,實(shí)現(xiàn)時(shí)間設(shè)置、溫度設(shè)定、火力選擇、聲音提示,在硬件組成上,涉及到電源供電、按鍵輸入、數(shù)碼管顯示、指示燈提示等。 由按

    2024年01月20日
    瀏覽(28)
  • 【DDR】基于Verilog的DDR控制器的簡(jiǎn)單實(shí)現(xiàn)(一)——初始化

    【DDR】基于Verilog的DDR控制器的簡(jiǎn)單實(shí)現(xiàn)(一)——初始化

    在FPGA中,大規(guī)模數(shù)據(jù)的存儲(chǔ)常常會(huì)用到DDR。為了方便用戶使用,Xilinx提供了DDR MIG IP核,用戶能夠通過(guò)AXI接口進(jìn)行DDR的讀寫訪問(wèn),然而MIG內(nèi)部自動(dòng)實(shí)現(xiàn)了許多環(huán)節(jié),不利于用戶深入理解DDR的底層邏輯。 本文以美光(Micron)公司生產(chǎn)的DDR3芯片MT41J512M8RH-093為例,說(shuō)明DDR芯片的操作

    2024年02月02日
    瀏覽(40)
  • FPGA實(shí)現(xiàn)PID控制器——基于Quartus prime 18.0

    FPGA實(shí)現(xiàn)PID控制器——基于Quartus prime 18.0

    目錄 ?1. PID控制器和離散化PID控制器 1.1 PID控制器 1.1.1 P控制器 1.1.2 穩(wěn)態(tài)誤差和I控制器 1.1.3 超調(diào)和D控制器 1.2 離散式PID控制器——位置式PID控制器 2.PID控制系統(tǒng)Simulink仿真 3.Verilog代碼編寫和Modelsim仿真 3.1 誤差計(jì)算模塊和PID算法模塊編寫 3.1.1 誤差計(jì)算模塊 3.1.2 PID算法模塊 3

    2024年02月03日
    瀏覽(35)
  • 多路彩燈控制器LED流水燈花型verilog仿真圖視頻、源代碼

    多路彩燈控制器LED流水燈花型verilog仿真圖視頻、源代碼

    名稱:多路彩燈控制器LED流水燈花型verilog 軟件:Quartus 語(yǔ)言:Verilog 代碼功能: ? ? ?用quartus和modelism,設(shè)計(jì)一個(gè)多路彩燈控制器,能夠使花型循環(huán)變化,具有復(fù)位清零功能,并可以選擇花型變化節(jié)奏。具體要求如下:? 1)彩燈控制器由16路發(fā)光二極管構(gòu)成,當(dāng)控制開關(guān)打開時(shí)

    2024年02月04日
    瀏覽(19)
  • 基于AHB協(xié)議的SRAM控制器的Verilog實(shí)現(xiàn)(詳解代碼)(一)——sram_core的實(shí)現(xiàn)

    基于AHB協(xié)議的SRAM控制器的Verilog實(shí)現(xiàn)(詳解代碼)(一)——sram_core的實(shí)現(xiàn)

    目錄 ?一、sramc(sram_controller)的總框架和模塊劃分 Features of sramc 結(jié)構(gòu)框圖和信號(hào)描述 二、sram_core的Verilog實(shí)現(xiàn) 動(dòng)手開敲前的構(gòu)思 Verilog代碼和代碼分析 三、sram_core的仿真驗(yàn)證 下載鏈接 sram因?yàn)槠涓咦x寫速度常常作為CPU和嵌入式IC的緩存,是一個(gè)數(shù)字系統(tǒng)中必不可少的存在,因此

    2024年01月16日
    瀏覽(29)
  • 9-基于STM32無(wú)刷直流電機(jī)控制器的設(shè)計(jì)仿真與實(shí)現(xiàn)(原理圖+源碼+仿真工程+論文+PPT+參考英文文獻(xiàn))

    9-基于STM32無(wú)刷直流電機(jī)控制器的設(shè)計(jì)仿真與實(shí)現(xiàn)(原理圖+源碼+仿真工程+論文+PPT+參考英文文獻(xiàn))

    包含此題目畢業(yè)設(shè)計(jì)全套資料: 原理圖工程文件 原理圖截圖 仿真模型工程文件 仿真截圖 低重復(fù)率文檔(22642字) 英文文獻(xiàn)及翻譯 資料鏈接 1.基于單片機(jī)實(shí)現(xiàn)無(wú)刷直流電機(jī)控制器的設(shè)計(jì),完成系統(tǒng)芯片選型; 2.確定無(wú)刷直流電機(jī)控制器的總體設(shè)計(jì)方案; 3.給出系統(tǒng)的硬件設(shè)計(jì)

    2024年02月07日
    瀏覽(19)
  • 基于FPGA 的SDRAM控制器

    基于FPGA 的SDRAM控制器

    4X16X4=256(Mbit),注意不是MByte sdram包含兩個(gè)部分:sdram_ctrl、fifo_ctrl。 sdram_ctrl:其頂層為SDRAM的控制模塊內(nèi)部實(shí)例化了5個(gè)模塊,有初始化、自刷新、寫和讀模塊,還有一個(gè)仲裁模塊對(duì)這四個(gè)不同操作進(jìn)行分配; fifo_ctrl:其頂層為SDRAM的數(shù)據(jù)輸入輸出,內(nèi)部實(shí)例化了兩個(gè)用于連

    2024年02月08日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包