
2009年3月30日 星期一
混合模式Start
方塊圖中蘊藏深奧秘密
不論順序的先後,是否要結合在一起 都有著不同的想法
也能從遠先兩兩不能結合在一起的COMPUTE
結合起來卻能夠互相彌補而成為正確的方塊圖!!
程式碼也得開始進行,試試看原先的除法器:

`define NUM_STATE_BITS 3
`define IDLE 3'b000
`define INIT 3'b001
`define COMPUTE1 3'b010
`define COMPUTE2 3'b011
`define COMPUTE3 3'b100
module cl(clk);
parameter TIME_LIMIT = 110000;
output clk;
reg clk;
initial
clk = 0;
always
#50 clk = ~clk;
always @(posedge clk)
if ($time > TIME_LIMIT) #70 $stop;
endmodule
module slow_div_system(pb,ready,x,y,r3,sysclk);
input pb,x,y,sysclk;output ready,r3;
wire pb;wire [11:0] x,y;reg ready;
reg [11:0] r1,r2,r3;
reg [`NUM_STATE_BITS-1:0] present_state;
always
begin
@(posedge sysclk) enter_new_state(`IDLE);
r1 <= @(posedge sysclk) x;
r2 <= @(posedge sysclk) 0;ready = 1;
if (pb)
begin
while (r1 >= y)
begin
@(posedge sysclk) enter_new_state(`COMPUTE1);
r1 <= @(posedge sysclk) r1 - y;
@(posedge sysclk) enter_new_state(`COMPUTE2);
r2 <= @(posedge sysclk) r2 + 1;
@(posedge sysclk) enter_new_state(`COMPUTE3);
r3 <= @(posedge sysclk) r2 ;
end
end
end
不論順序的先後,是否要結合在一起 都有著不同的想法
也能從遠先兩兩不能結合在一起的COMPUTE
結合起來卻能夠互相彌補而成為正確的方塊圖!!
程式碼也得開始進行,試試看原先的除法器:

`define NUM_STATE_BITS 3
`define IDLE 3'b000
`define INIT 3'b001
`define COMPUTE1 3'b010
`define COMPUTE2 3'b011
`define COMPUTE3 3'b100
module cl(clk);
parameter TIME_LIMIT = 110000;
output clk;
reg clk;
initial
clk = 0;
always
#50 clk = ~clk;
always @(posedge clk)
if ($time > TIME_LIMIT) #70 $stop;
endmodule
module slow_div_system(pb,ready,x,y,r3,sysclk);
input pb,x,y,sysclk;output ready,r3;
wire pb;wire [11:0] x,y;reg ready;
reg [11:0] r1,r2,r3;
reg [`NUM_STATE_BITS-1:0] present_state;
always
begin
@(posedge sysclk) enter_new_state(`IDLE);
r1 <= @(posedge sysclk) x;
r2 <= @(posedge sysclk) 0;ready = 1;
if (pb)
begin
while (r1 >= y)
begin
@(posedge sysclk) enter_new_state(`COMPUTE1);
r1 <= @(posedge sysclk) r1 - y;
@(posedge sysclk) enter_new_state(`COMPUTE2);
r2 <= @(posedge sysclk) r2 + 1;
@(posedge sysclk) enter_new_state(`COMPUTE3);
r3 <= @(posedge sysclk) r2 ;
end
end
end
2009年3月16日 星期一
Verilog入門
概述設計演算法狀態機,簡稱(ASM);它是運用類似流程的符號表示法,可描述一個演算法在
每個時間單位步進式的運作。ASM雖然看起來與軟體的流程圖類似,但ASM圖卻也表示時間推移
與演算法運作的相關性。
藉由日常生活中最常運用到的紅綠燈作為舉例,從原本只有三個方塊(State)的簡單迴圈,加入一
位元.二位元.三位元...不等的多位元訊號,再加入暫存器與擁有決策性的方塊圖的使用,增加控制
器的多元性。
二位元的訊號,即會有3種不同的排列組合;之後遇到若是12位元的訊號那就會有4095種的排列
組合;這堂課目前教的只是初步的東西,若是真的要深入研究必須得下一番苦心才能熬出頭,但
為了以後的路,是否自己該進修進修呢?!
每個時間單位步進式的運作。ASM雖然看起來與軟體的流程圖類似,但ASM圖卻也表示時間推移
與演算法運作的相關性。
藉由日常生活中最常運用到的紅綠燈作為舉例,從原本只有三個方塊(State)的簡單迴圈,加入一
位元.二位元.三位元...不等的多位元訊號,再加入暫存器與擁有決策性的方塊圖的使用,增加控制
器的多元性。
二位元的訊號,即會有3種不同的排列組合;之後遇到若是12位元的訊號那就會有4095種的排列
組合;這堂課目前教的只是初步的東西,若是真的要深入研究必須得下一番苦心才能熬出頭,但
為了以後的路,是否自己該進修進修呢?!
2009年3月9日 星期一
訂閱:
文章 (Atom)