[問題] ISE verilog 問題

看板Programming作者 (Winston)時間12年前 (2013/04/13 00:16), 編輯推噓3(303)
留言6則, 2人參與, 最新討論串1/1
題目是 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

04/13 14:22, , 1F
我用ISE合 都合成flip-flop@@
04/13 14:22, 1F

04/13 14:38, , 2F
只不過最下面的always block邏輯怪怪的
04/13 14:38, 2F

04/13 14:51, , 3F
Totaloffset計算出來的可以不是你要的
04/13 14:51, 3F

04/13 14:52, , 4F
值 檢查一下吧
04/13 14:52, 4F

04/13 14:52, , 5F
^可能不是你要的
04/13 14:52, 5F

04/13 17:13, , 6F
感謝你~~~~
04/13 17:13, 6F
文章代碼(AID): #1HQ3DFzK (Programming)
文章代碼(AID): #1HQ3DFzK (Programming)