C
cherjier
Guest
لدي سؤال وآمل أن أحصل على بعض ردود الفعل..
هذا هو رمز سبيل المثال :
رمز :
multi_cyc_test النمطية (
CLK ،
RST_N ،المدرسة الوطنية للإدارة ،
IN_DATA ،
OUT_DATA
(؛)المعلمة معطلة = 2'b00 ؛
المعلمة تحميل = 2'b01 ؛
العد المعلمة = 2'b10 ؛
المعلمة عنبر = 2'b11 ؛CLK المدخلات ؛
RST_N المدخلات ؛
المدرسة الوطنية للإدارة المدخلات ؛
مدخلات [3:0] IN_DATA ؛الإخراج [3:0] OUT_DATA ؛ريج [1:0] عداد ؛
ريج [3:0] reg_a ؛
ريج [3:0] reg_b ؛ريج [1:0] current_state ؛
ريج [1:0] next_state ؛count_start حصوي ؛
reg_a_en حصوي ؛
reg_b_en حصوي ؛count_done سلك ؛تعيين count_done = &counter؛
تعيين OUT_DATA = reg_b ؛دائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
مكافحة <= 2'b00 ؛
والا اذا (count_start)
مكافحة <= مكافحة 1 ؛دائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
reg_a <= 4'h0 ؛
والا اذا (reg_a_en)
reg_a <= IN_DATA ؛دائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
reg_b <= 4'h0 ؛
والا اذا (reg_b_en)
reg_b <= ~ reg_a ؛ / / من reg_a لreg_b ، قد وسيطة قد منطق أكثر التوافقيةدائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
current_state <= معطلة ؛
أيضا
current_state <= next_state ؛دائما @ (current_state أو الاثيوبية أو count_done) يبدأcount_start = 1'b0 ؛
reg_a_en = 1'b0 ؛
reg_b_en = 1'b0 ؛حالة (current_state)
الخمول : أبدأ
إذا كان (الاثيوبية) next_state = الحمل ؛
نهايةتحميل : أبدأ
next_state = العد ؛
reg_a_en = 1'b1 ؛
نهايةالاحصاء : أبدأ
next_state = العد ؛
إذا كان (count_done) next_state = عنبر ؛
count_start = 1'b1 ؛
نهايةعنبر : أبدأ
next_state = معطلة ؛
reg_b_en = 1'b1 ؛
نهايةالافتراضي : أبدأ
next_state = معطلة ؛
نهاية
endcase
نهايةendmodule
هذا هو رمز سبيل المثال :
رمز :
multi_cyc_test النمطية (
CLK ،
RST_N ،المدرسة الوطنية للإدارة ،
IN_DATA ،
OUT_DATA
(؛)المعلمة معطلة = 2'b00 ؛
المعلمة تحميل = 2'b01 ؛
العد المعلمة = 2'b10 ؛
المعلمة عنبر = 2'b11 ؛CLK المدخلات ؛
RST_N المدخلات ؛
المدرسة الوطنية للإدارة المدخلات ؛
مدخلات [3:0] IN_DATA ؛الإخراج [3:0] OUT_DATA ؛ريج [1:0] عداد ؛
ريج [3:0] reg_a ؛
ريج [3:0] reg_b ؛ريج [1:0] current_state ؛
ريج [1:0] next_state ؛count_start حصوي ؛
reg_a_en حصوي ؛
reg_b_en حصوي ؛count_done سلك ؛تعيين count_done = &counter؛
تعيين OUT_DATA = reg_b ؛دائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
مكافحة <= 2'b00 ؛
والا اذا (count_start)
مكافحة <= مكافحة 1 ؛دائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
reg_a <= 4'h0 ؛
والا اذا (reg_a_en)
reg_a <= IN_DATA ؛دائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
reg_b <= 4'h0 ؛
والا اذا (reg_b_en)
reg_b <= ~ reg_a ؛ / / من reg_a لreg_b ، قد وسيطة قد منطق أكثر التوافقيةدائما @ (CLK posedge أو RST_N negedge)
إذا (! RST_N)
current_state <= معطلة ؛
أيضا
current_state <= next_state ؛دائما @ (current_state أو الاثيوبية أو count_done) يبدأcount_start = 1'b0 ؛
reg_a_en = 1'b0 ؛
reg_b_en = 1'b0 ؛حالة (current_state)
الخمول : أبدأ
إذا كان (الاثيوبية) next_state = الحمل ؛
نهايةتحميل : أبدأ
next_state = العد ؛
reg_a_en = 1'b1 ؛
نهايةالاحصاء : أبدأ
next_state = العد ؛
إذا كان (count_done) next_state = عنبر ؛
count_start = 1'b1 ؛
نهايةعنبر : أبدأ
next_state = معطلة ؛
reg_b_en = 1'b1 ؛
نهايةالافتراضي : أبدأ
next_state = معطلة ؛
نهاية
endcase
نهايةendmodule