±±º½verilogʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

±±¾©º½¿Õº½Ìì´óѧ

µç×Óµç·Éè¼ÆÊý×Ö²¿·ÖʵÑ鱨¸æ

ʵÑéÒ» ¼òµ¥×éºÏÂß¼­Éè¼Æ ........................................................................................................... 2 ʵÑé¶þ ¼òµ¥·ÖƵʱÐòÂß¼­µç·µÄÉè¼Æ ....................................................................................... 3 Ò»£®ÊµÑéÄ¿µÄ£º1£®ÕÆÎÕ×î»ù±¾×éºÏÂß¼­µç·µÄʵÏÖ·½·¨¡£ ..................................................... 3 2£®Ñ§Ï°Ê±Ðòµç·²âÊÔÄ£¿éµÄ±àд¡£ ............................................................................................. 3 3£®Ñ§Ï°×ۺϺͲ»Í¬²ã´ÎµÄ·ÂÕæ¡£ ................................................................................................. 3 ʵÑéÈý ÀûÓÃÌõ¼þÓï¾äʵÏÖ¼ÆÊý·ÖƵʱÐòµç· ........................................................................... 5 ʵÑéËÄ ×èÈû¸³ÖµÓë·Ç×èÈû¸³ÖµµÄÇø±ð ....................................................................................... 7 ʵÑéÎå ÓÃalways¿éʵÏֽϸ´ÔÓµÄ×éºÏÂß¼­£º ........................................................................ 10 ʵÑéÁù ÔÚ Verilog HDLÖÐʹÓú¯Êý ......................................................................................... 12 ʵÑéÆß ÔÚVerilog HDLÖÐʹÓÃÈÎÎñ(task) ................................................................................. 14 ʵÑé°Ë ÀûÓÃÓÐÏÞ״̬»ú½øÐÐʱÐòÂß¼­µÄÉè¼Æ ......................................................................... 17 ʵÑé¾Å Â¥ÌÝµÆ ............................................................................................................................. 19 ʵÑé˼¿¼Óë×ܽá ............................................................................................................................. 29

ѧ Ôº£º ѧ ºÅ£º ÐÕ Ãû£º

ʵÑéÒ» ¼òµ¥×éºÏÂß¼­Éè¼Æ

Ò»£®ÊµÑéÄ¿µÄ£º

1£®ÕÆÎÕ»ù±¾×éºÏÂß¼­µç·µÄʵÏÖ·½·¨¡£

2£®³õ²½Á˽âÁ½ÖÖ»ù±¾×éºÏÂß¼­µç·µÄÉú³É·½·¨¡£ 3£®Ñ§Ï°²âÊÔÄ£¿éµÄ±àд¡£

4£®Í¨¹ý×ۺϺͲ¼¾Ö²¼ÏßÁ˽ⲻͬ²ã´Î·ÂÕæµÄÎïÀíÒâÒå¡£ ¶þ£®ÊµÑéÉ豸£º

°²×°Modelsim-6.5cµÄPC»ú¡£ Èý£®ÊµÑéÄÚÈÝ£º

ÃèÊöÒ»¸ö¿É×ۺϵÄÊý¾Ý±È½ÏÆ÷£¬±È½ÏÊý¾Ýa ¡¢bµÄ´óС£¬ÈôÏàͬ£¬Ôò¸ø³ö½á¹û1£¬·ñÔò¸ø³ö½á¹û0

ËÄ£®×ۺϷÂÕæ½á¹û

ʵÑé¶þ ¼òµ¥·ÖƵʱÐòÂß¼­µç·µÄÉè¼Æ

Ò»£®ÊµÑéÄ¿µÄ£º1£®ÕÆÎÕ×î»ù±¾×éºÏÂß¼­µç·µÄʵÏÖ·½·¨¡£

2£®Ñ§Ï°Ê±Ðòµç·²âÊÔÄ£¿éµÄ±àд¡£

3£®Ñ§Ï°×ۺϺͲ»Í¬²ã´ÎµÄ·ÂÕæ¡£

¶þ£®ÊµÑéÉ豸£º

°²×°Modelsim-6.5cµÄPC»ú¡£ Èý£®ÊµÑéÄÚÈÝ£º

ÓÃalways¿éºÍ@(posedge clk)»ò@(negedge clk)µÄ½á¹¹±íÊöÒ»¸ö1/2·ÖƵÆ÷µÄ¿É×ÛºÏÄ£ÐÍ£¬¹Û²ìʱÐò·ÂÕæ½á¹û

ËÄ£®ÊµÑé´úÂë

module half_clk(reset,clk_in,clk_out); input clk_in,reset; output clk_out; reg clk_out;

always@(posedge clk_in) begin if(!reset) clk_out=0; else

clk_out=~clk_out; end endmodule

`timescale 1ns/100ps `define clk_cycle 50 module top; reg clk,reset; wire clk_out;

always #`clk_cycle clk=~clk; initial begin clk=0; reset=-1; #10 reset=0; #110 reset=1; #100000 $stop; end

half_clk m0(.reset(reset),.clk_in(clk),.clk_out(clk_out)); endmodule

Î壮×ۺϷÂÕæ½á¹û