[爆卦]verilog reg初始值是什麼?優點缺點精華區懶人包

為什麼這篇verilog reg初始值鄉民發文收入到精華區:因為在verilog reg初始值這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者winston1215 (Winston)看板Programming標題[問題] ISE ver...



題目是 16個LED燈 一次亮兩個燈 然後隨著時間向右移動

兩個LED燈中間的寬度由offset決定

頻率由speed決定 如果1 則是2hz 0 則1hz

for example

OXOXXXXX → XOXOXXXX → XXOXOXXX → XXXOXOXX → XXXXOXOX → XXXXXOXO →

OXXXXXOX → XOXXXXXO → OXOXXXXX →........


//8個LED燈為例 O表示亮 X表示暗 totaloffset=1



大致已經完成了 但合成時電腦總會警告合出latch

該如何解決呢? 麻煩大家幫幫忙!


程式分兩部分

第一除頻器 將FPGA版的40Mhz降至2hz & 1hz

module frequencydiv(CLK,reset,count,CLK2,CLK1);

input CLK;
input reset;
output reg [24:0]count;
output reg CLK2;
output reg CLK1;


always@(posedge CLK)
begin

if(reset) count <= 25'b0;
else count <= count + 1'b1;

CLK1 = count[24];
CLK2 = count[23];

end


endmodule


第二是LED主程式
module main(CLK,speed,reset,Offset,LED);

input CLK;
input speed;
wire CLKchoice;
wire [25:1]count;
wire CLK2,CLK1;
input reset;
input [2:0]Offset;
wire [3:0]Totaloffset;
reg [15:0]data;
output reg [15:0]LED;
reg [15:0]start;
parameter two=2;
parameter one=1;

frequencydiv
fd(.CLK(CLK),.reset(reset),.count(count),.CLK2(CLK2),.CLK1(CLK1));
//加入除頻器

assign CLKchoice = (~speed)?CLK2:CLK1;


assign Totaloffset = ~Offset + 1'b1;


always@(Totaloffset)
begin
case(Totaloffset)
4'b0001: data = 16'b1010_0000_0000_0000;
4'b0010: data = 16'b1001_0000_0000_0000;
4'b0011: data = 16'b1000_1000_0000_0000;
4'b0100: data = 16'b1000_0100_0000_0000;
4'b0101: data = 16'b1000_0010_0000_0000;
4'b0110: data = 16'b1000_0001_0000_0000;
4'b0111: data = 16'b1000_0000_1000_0000;
4'b1000: data = 16'b1000_0000_0100_0000;
default: data = 16'b1111_1111_1111_1111;
endcase

//mapping出LED起始位置

start = data; //紀錄初始值
end





always@(posedge CLKchoice or negedge reset)
begin
if(~reset)
LED <= start; //reset成初始值

else if (data[0]==1)
begin LED <= {1,(data[15:1]>>one)};end //當最後一個是0時第一位補1

else
LED <= (data>>one);


end

endmodule

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.25.240
tingyushyu:我用ISE合 都合成flip-flop@@ 140.123.103.50 04/13 14:22
tingyushyu:只不過最下面的always block邏輯怪怪的 140.123.103.50 04/13 14:38
tingyushyu:Totaloffset計算出來的可以不是你要的 140.123.103.50 04/13 14:51
tingyushyu:值 檢查一下吧 140.123.103.50 04/13 14:52
tingyushyu: ^可能不是你要的 140.123.103.50 04/13 14:52
winston1215:感謝你~~~~ 114.34.25.240 04/13 17:13

你可能也想看看

搜尋相關網站