⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sinwave.v

📁 用verilog HDL产生正弦阶梯波。加da即可输出正弦波
💻 V
字号:
module sinwave(sclk,reset,waveval);
input sclk,reset;
output[7:0] waveval;
reg[7:0] 	waveval;

reg 		wave;
reg[7:0]    wavenum;




/*always @(posedge sclk or negedge reset)
begin
	if(!reset)
	begin
		wave <= 0;
	end
	else
	begin
		if(wavenum == 0)
		begin
			wave <= 0;
		end
		else if(wavenum == 'd180)
		begin
			wave <= 1;
		end
	end
end
always @(posedge sclk or negedge reset)
begin
	if(!reset)
	begin
		wavenum <= 0;
		wave <= 1;
	end
	else
	begin
	if(wave==1)
	begin
		wavenum <= wavenum + 1;
	end
	else
	begin
		wavenum <= wavenum - 1;
	end
	if(wavenum == 0)
	begin
		wave <= 1;
	end
	else if(wavenum == 'd180)
	begin
		wave <= 0;
	end
	end
end		*/
always @(posedge sclk or negedge reset)
begin
	if(!reset)
	begin
		waveval <= 0;
		wave <= 0;
		wavenum <= 0;
	end
	else
	begin
	if(wave)
	begin
		wavenum <= wavenum - 1;
	end
	else
	begin
		wavenum <= wavenum + 1;
	end
	case(wavenum)
		'd0:
		begin
			wave <= 0;
			waveval <= 'd255;
		end
		'd1:
			waveval <= 'd255;
		'd2:
			waveval <= 'd255;
		'd3:
			waveval <= 'd255;
		'd4:
			waveval <= 'd254;
		'd5:
			waveval <= 'd254;
		'd6:
			waveval <= 'd254;
		'd7:
			waveval <= 'd254;
		'd8:
			waveval <= 'd254;
		'd9:
			waveval <= 'd253;
		'd10:
			waveval <= 'd253;
		'd11:
			waveval <= 'd253;
		'd12:
			waveval <= 'd252;
		'd13:
			waveval <= 'd252;
		'd14:
			waveval <= 'd251;
		'd15:
			waveval <= 'd251;
		'd16:
			waveval <= 'd250;
		'd17:
			waveval <= 'd249;
		'd18:
			waveval <= 'd249;
		'd19:
			waveval <= 'd248;
		'd20:
			waveval <= 'd247;
		'd21:
			waveval <= 'd246;
		'd22:
			waveval <= 'd246;
		'd23:
			waveval <= 'd245;
		'd24:
			waveval <= 'd244;
		'd25:
			waveval <= 'd242;
		'd26:
			waveval <= 'd242;
		'd27:
			waveval <= 'd241;
		'd28:
			waveval <= 'd240;
		'd29:
			waveval <= 'd239;
		'd30:
			waveval <= 'd238;
		'd31:
			waveval <= 'd237;
		'd32:
			waveval <= 'd236;
		'd33:
			waveval <= 'd234;
		'd34:
			waveval <= 'd233;
		'd35:
			waveval <= 'd232;
		'd36:
			waveval <= 'd231;
		'd37:
			waveval <= 'd229;
		'd38:
			waveval <= 'd228;
		'd39:
			waveval <= 'd227;
		'd40:
			waveval <= 'd225;
		'd41:
			waveval <= 'd224;
		'd42:
			waveval <= 'd222;
		'd43:
			waveval <= 'd221;
		'd44:
			waveval <= 'd219;
		'd45:
			waveval <= 'd218;
		'd46:
			waveval <= 'd216;
		'd47:
			waveval <= 'd215;
		'd48:
			waveval <= 'd213;
		'd49:
			waveval <= 'd211;
		'd50:
			waveval <= 'd210;
		'd51:
			waveval <= 'd208;
		'd52:
			waveval <= 'd206;
		'd53:
			waveval <= 'd204;
		'd54:
			waveval <= 'd203;
		'd55:
			waveval <= 'd201;
		'd56:
			waveval <= 'd199;
		'd57:
			waveval <= 'd197;
		'd58:
			waveval <= 'd195;
		'd59:
			waveval <= 'd193;
		'd60:
			waveval <= 'd191;
		'd61:
			waveval <= 'd190;
		'd62:
			waveval <= 'd188;
		'd63:
			waveval <= 'd186;
		'd64:
			waveval <= 'd184;
		'd65:
			waveval <= 'd182;
		'd66:
			waveval <= 'd180;
		'd67:
			waveval <= 'd178;
		'd68:
			waveval <= 'd175;
		'd69:
			waveval <= 'd173;
		'd70:
			waveval <= 'd171;
		'd71:
			waveval <= 'd169;
		'd72:
			waveval <= 'd167;
		'd73:
			waveval <= 'd165;
		'd74:
			waveval <= 'd163;
		'd75:
			waveval <= 'd161;
		'd76:
			waveval <= 'd159;
		'd77:
			waveval <= 'd156;
		'd78:
			waveval <= 'd154;
		'd79:
			waveval <= 'd152;
		'd80:
			waveval <= 'd150;
		'd81:
			waveval <= 'd148;
		'd82:
			waveval <= 'd146;
		'd83:
			waveval <= 'd143;
		'd84:
			waveval <= 'd141;
		'd85:
			waveval <= 'd139;
		'd86:
			waveval <= 'd137;
		'd87:
			waveval <= 'd135;
		'd88:
			waveval <= 'd132;
		'd89:
			waveval <= 'd130;
		'd90:
			waveval <= 'd128;
		'd91:
			waveval <= 'd125;
		'd92:
			waveval <= 'd123;
		'd93:
			waveval <= 'd121;
		'd94:
			waveval <= 'd119;
		'd95:
			waveval <= 'd117;
		'd96:
			waveval <= 'd115;
		'd97:
			waveval <= 'd113;
		'd98:
			waveval <= 'd110;
		'd99:
			waveval <= 'd108;
		'd100:
			waveval <= 'd106;
		'd101:
			waveval <= 'd104;
		'd102:
			waveval <= 'd102;
		'd103:
			waveval <= 'd99;
		'd104:
			waveval <= 'd97;
		'd105:
			waveval <= 'd95;
		'd106:
			waveval <= 'd93;
		'd107:
			waveval <= 'd91;
		'd108:
			waveval <= 'd89;
		'd109:
			waveval <= 'd87;
		'd110:
			waveval <= 'd85;
		'd111:
			waveval <= 'd82;
		'd112:
			waveval <= 'd80;
		'd113:
			waveval <= 'd78;
		'd114:
			waveval <= 'd76;
		'd115:
			waveval <= 'd74;
		'd116:
			waveval <= 'd72;
		'd117:
			waveval <= 'd70;
		'd118:
			waveval <= 'd68;
		'd119:
			waveval <= 'd66;
		'd120:
			waveval <= 'd64;
		'd121:
			waveval <= 'd62;
		'd122:
			waveval <= 'd61;
		'd123:
			waveval <= 'd59;
		'd124:
			waveval <= 'd57;
		'd125:
			waveval <= 'd55;
		'd126:
			waveval <= 'd53;
		'd127:
			waveval <= 'd51;
		'd128:
			waveval <= 'd50;
		'd129:
			waveval <= 'd48;
		'd130:
			waveval <= 'd46;
		'd131:
			waveval <= 'd45;
		'd132:
			waveval <= 'd43;
		'd133:
			waveval <= 'd41;
		'd134:
			waveval <= 'd40;
		'd135:
			waveval <= 'd38;
		'd136:
			waveval <= 'd37;
		'd137:
			waveval <= 'd35;
		'd138:
			waveval <= 'd34;
		'd139:
			waveval <= 'd32;
		'd140:
			waveval <= 'd31;
		'd141:
			waveval <= 'd29;
		'd142:
			waveval <= 'd28;
		'd143:
			waveval <= 'd26;
		'd144:
			waveval <= 'd25;
		'd145:
			waveval <= 'd24;
		'd146:
			waveval <= 'd23;
		'd147:
			waveval <= 'd21;
		'd148:
			waveval <= 'd20;
		'd149:
			waveval <= 'd19;
		'd150:
			waveval <= 'd18;
		'd151:
			waveval <= 'd17;
		'd152:
			waveval <= 'd16;
		'd153:
			waveval <= 'd15;
		'd154:
			waveval <= 'd14;
		'd155:
			waveval <= 'd13;
		'd156:
			waveval <= 'd12;
		'd157:
			waveval <= 'd11;
		'd158:
			waveval <= 'd10;
		'd159:
			waveval <= 'd9;
		'd160:
			waveval <= 'd9;
		'd161:
			waveval <= 'd8;
		'd162:
			waveval <= 'd7;
		'd163:
			waveval <= 'd6;
		'd164:
			waveval <= 'd6;
		'd165:
			waveval <= 'd5;
		'd166:
			waveval <= 'd5;
		'd167:
			waveval <= 'd4;
		'd168:
			waveval <= 'd4;
		'd169:
			waveval <= 'd3;
		'd170:
			waveval <= 'd3;
		'd171:
			waveval <= 'd2;
		'd172:
			waveval <= 'd2;
		'd173:
			waveval <= 'd2;
		'd174:
			waveval <= 'd1;
		'd175:
			waveval <= 'd1;
		'd176:
			waveval <= 'd1;
		'd177:
			waveval <= 'd0;
		'd178:
			waveval <= 'd0;
		'd179:
			waveval <= 'd0;
		'd180:
		begin
			wave <= 1;
			waveval <= 'd0;
		end
		default:
			;//wavenum <= 0;//waveval <= 0;
		endcase
		end
end


	


endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -