?? second_pulse_latch.v
字號:
module second_pulse_latch(
Reset,
Clk_1Hz,
speed,
acceleration,
second_pulse_out
);
output [15:0] second_pulse_out;
input Reset;
input Clk_1Hz;
input [15:0] speed; //初速度
input [16:0] acceleration;
//最高位acceleration[16]用來表示加速度的正負,0為正,1為負
reg [15:0] second_pulse_out;
initial
begin
second_pulse_out <= speed;
end
always @(posedge Clk_1Hz)
begin
if(Reset == 1'b1)
second_pulse_out <= 16'b0;
else
begin
if(acceleration[16] == 1'b0) //加速度為正
begin
if((second_pulse_out + acceleration[15:0]) < 16'b1111111111111111)
//加速,且速度不超過65535
second_pulse_out <= second_pulse_out + acceleration[15:0];
else
//速度超過65535,直接固定在65535
second_pulse_out <= 16'b1111111111111111;
end
else if(acceleration[16] == 1'b1) //加速度為負
begin
if((second_pulse_out - acceleration[15:0]) > 16'b0)
//減速,且速度不小于0
second_pulse_out <= second_pulse_out - acceleration[15:0];
else
//減速,且速度小于0,直接固定在0,即停止
second_pulse_out <= 16'b0;
end
end
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -