「verilog reg初始值」的推薦目錄:
- 關於verilog reg初始值 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於verilog reg初始值 在 大象中醫 Youtube 的最讚貼文
- 關於verilog reg初始值 在 大象中醫 Youtube 的最佳貼文
- 關於verilog reg初始值 在 [問題] ISE verilog 問題- 看板Programming - 批踢踢實業坊 的評價
- 關於verilog reg初始值 在 Verilog (2) – 硬體語言的基礎(作者:陳鍾誠) 的評價
- 關於verilog reg初始值 在 [問題] verilog array在always給值 - PTT 熱門文章Hito 的評價
verilog reg初始值 在 大象中醫 Youtube 的最讚貼文
verilog reg初始值 在 大象中醫 Youtube 的最佳貼文
verilog reg初始值 在 Verilog (2) – 硬體語言的基礎(作者:陳鍾誠) 的推薦與評價
當然、除了線路之外,Verilog 還有可以穩定儲存位元的型態,稱為reg (暫存 ... 當中使用的,在一開始初始化的時後,可以透過initial 設定初值, 例如以下的程式: ... <看更多>
verilog reg初始值 在 [問題] verilog array在always給值 - PTT 熱門文章Hito 的推薦與評價
各位先進好我在寫verilog想在always裡給值遇到了問題例如reg [3:0] x [3:0];reg ... 但是雖然rtl可過dc出現error:for迴圈變數初始值不能為變數請問這種根據cnt而選擇 ... ... <看更多>
verilog reg初始值 在 [問題] ISE verilog 問題- 看板Programming - 批踢踢實業坊 的推薦與評價
題目是 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
... <看更多>