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

北郵22級(jí)信通院數(shù)電:Verilog-FPGA(12)第十二周實(shí)驗(yàn)(2)彩虹呼吸燈(bug已解決 更新至3.0)

這篇具有很好參考價(jià)值的文章主要介紹了北郵22級(jí)信通院數(shù)電:Verilog-FPGA(12)第十二周實(shí)驗(yàn)(2)彩虹呼吸燈(bug已解決 更新至3.0)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

北郵22信通一枚~

跟隨課程進(jìn)度更新北郵信通院數(shù)字系統(tǒng)設(shè)計(jì)的筆記、代碼和文章

持續(xù)關(guān)注作者 迎接數(shù)電實(shí)驗(yàn)學(xué)習(xí)~

獲取更多文章,請(qǐng)?jiān)L問專欄:

北郵22級(jí)信通院數(shù)電實(shí)驗(yàn)_青山如墨雨如畫的博客-CSDN博客

青山入墨雨如畫,北郵22級(jí)信通院數(shù)電實(shí)驗(yàn),fpga開發(fā)

目錄

一.代碼部分

1.1一些更新和講解

1.2改正后的代碼

?二.管腳分配

三.實(shí)驗(yàn)效果


一.代碼部分

1.1一些更新和講解

12.03更新:

pwm……很抽象 原先版本的代碼運(yùn)行之后應(yīng)該是亮白燈()我班大佬幫改了一下之后目前如下這個(gè)樣子,,,,

邏輯都一樣就是寫法不同,,,不知道為啥就好使了,,,

還有佬能給解釋一下不,,,

然后:借鑒的時(shí)候別忘了把我前面的注釋刪下去()

12.03更新2:

感謝評(píng)論區(qū)各位uu?。?/strong>

明白原先是怎么錯(cuò)的了 例化的時(shí)候函數(shù)參數(shù)調(diào)用順序錯(cuò)了

原先那么寫也是可以的,,例化的時(shí)候調(diào)一下函數(shù)參數(shù)順序就可以了

//完了C++知識(shí)是忘光了()

青山入墨雨如畫,北郵22級(jí)信通院數(shù)電實(shí)驗(yàn),fpga開發(fā)

//12.03更新:我班大佬幫改出來了::
//原先的這段不行 但不知道為啥不行(
//借鑒的時(shí)候別忘了把這段刪下去(
/*
module pwm
(
	input [7:0] duty,
	input clk,
	output reg out
);
	reg [7:0] buffer;
	always @ (posedge clk)
		begin 
			buffer <= buffer + 1;
			if(buffer < duty)
				begin out <= 0;end
			else
				begin out <= 1;end
		end
endmodule
*/
/*
12.03更新2:
原pwm模塊書寫沒有問題,例化的時(shí)候函數(shù)參數(shù)調(diào)用順序出了問題
例化時(shí)應(yīng)改為:pwm pwm_red(red,clk,red_buffer);
*/
// 模塊定義: pwm
// 該模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的脈寬調(diào)制(PWM)發(fā)生器。
module pwm(out,duty,clk);
	input [7:0] duty;   // 輸入,表示占空比,范圍從0到255
	input clk;         // 輸入,時(shí)鐘信號(hào)用于同步
	output reg out;     // 輸出信號(hào),表示PWM波形
	reg [7:0] buffer;      // 8位寄存器,用于存儲(chǔ)當(dāng)前計(jì)數(shù)值

	always @ (posedge clk)
		begin 
			buffer <= buffer + 1;// 在每個(gè)時(shí)鐘上升沿遞增緩沖區(qū)值
			if (buffer < duty)// 將緩沖區(qū)值與占空比進(jìn)行比較:如果緩沖區(qū)小于占空比,則將輸出設(shè)置為0;否則,設(shè)置為1。
				begin
					out <= 0;
				end
			else
				begin
					out <= 1;
				end
		end
endmodule	

module rainbow_breathing_light
	(clk,red,green,blue);
	input clk;
	output red,green,blue;

	reg [15:0] wheel_position;
	reg [7:0] wheel_position_buffer;
	reg [7:0] red_buffer,green_buffer,blue_buffer;
	reg [31:0] divide_buffer;
	
	wire clk;
	reg divide_clk;
	
	pwm pwm_red(red,red_buffer,clk);
	pwm pwm_green(green,green_buffer,clk);
	pwm pwm_blue(blue,blue_buffer,clk);
	
	always @ (posedge clk)
		begin 
			if(divide_buffer < 50000)
				begin divide_buffer <= divide_buffer + 1;end
			else
				begin 
					divide_clk <= ~divide_clk;
					divide_buffer <= 0;
				end
		end
	always @ (posedge divide_clk)
		begin 
			if(wheel_position < 765)
				wheel_position <= wheel_position + 1;
			else
				wheel_position <= 0;
			if(wheel_position < 255)
				begin 
					red_buffer <= 255 - wheel_position;
					green_buffer <= 0;
					blue_buffer <= wheel_position;
				end
			else if(wheel_position < 510)
				begin 
					red_buffer <= 0;
					green_buffer <= wheel_position - 255;
					blue_buffer <= 255 - (wheel_position - 255);
				end
			else
				begin
					red_buffer <= wheel_position - 510;
					green_buffer <= 255 - (wheel_position - 510);
					blue_buffer <= 0;
				end
		end
endmodule

1.2改正后的代碼

將模塊定義(類比C++函數(shù)接口定義)中的形參順序改動(dòng):

rainbow_breathing_light.v

// 模塊定義: pwm
// 該模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的脈寬調(diào)制(PWM)發(fā)生器。
module pwm(out,duty,clk);
	input [7:0] duty;   // 輸入,表示占空比,范圍從0到255
	input clk;         // 輸入,時(shí)鐘信號(hào)用于同步
	output reg out;     // 輸出信號(hào),表示PWM波形
	reg [7:0] buffer;      // 8位寄存器,用于存儲(chǔ)當(dāng)前計(jì)數(shù)值

	always @ (posedge clk)
		begin 
			buffer <= buffer + 1;// 在每個(gè)時(shí)鐘上升沿遞增緩沖區(qū)值
			if (buffer < duty)// 將緩沖區(qū)值與占空比進(jìn)行比較:如果緩沖區(qū)小于占空比,則將輸出設(shè)置為0;否則,設(shè)置為1。
				begin
					out <= 0;
				end
			else
				begin
					out <= 1;
				end
		end
endmodule	

module rainbow_breathing_light
	(clk,red,green,blue);
	input clk;
	output red,green,blue;

	reg [15:0] wheel_position;
	reg [7:0] wheel_position_buffer;
	reg [7:0] red_buffer,green_buffer,blue_buffer;
	reg [31:0] divide_buffer;
	
	wire clk;
	reg divide_clk;
	
	pwm pwm_red(red,red_buffer,clk);
	pwm pwm_green(green,green_buffer,clk);
	pwm pwm_blue(blue,blue_buffer,clk);
	
	always @ (posedge clk)
		begin 
			if(divide_buffer < 50000)
				begin divide_buffer <= divide_buffer + 1;end
			else
				begin 
					divide_clk <= ~divide_clk;
					divide_buffer <= 0;
				end
		end
	always @ (posedge divide_clk)
		begin 
			if(wheel_position < 765)
				wheel_position <= wheel_position + 1;
			else
				wheel_position <= 0;
			if(wheel_position < 255)
				begin 
					red_buffer <= 255 - wheel_position;
					green_buffer <= 0;
					blue_buffer <= wheel_position;
				end
			else if(wheel_position < 510)
				begin 
					red_buffer <= 0;
					green_buffer <= wheel_position - 255;
					blue_buffer <= 255 - (wheel_position - 255);
				end
			else
				begin
					red_buffer <= wheel_position - 510;
					green_buffer <= 255 - (wheel_position - 510);
					blue_buffer <= 0;
				end
		end
endmodule

?二.管腳分配

青山入墨雨如畫,北郵22級(jí)信通院數(shù)電實(shí)驗(yàn),fpga開發(fā)

三.實(shí)驗(yàn)效果

彩虹呼吸燈。?文章來源地址http://www.zghlxwxcb.cn/news/detail-762621.html

到了這里,關(guān)于北郵22級(jí)信通院數(shù)電:Verilog-FPGA(12)第十二周實(shí)驗(yàn)(2)彩虹呼吸燈(bug已解決 更新至3.0)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包