string.v.txt
上传用户:saul_905
上传日期:2013-11-27
资源大小:184k
文件大小:2k
源码类别:

VHDL/FPGA/Verilog

开发平台:

Visual C++

  1. //
  2. // Demonstrate how to display strings for a particular signal.
  3. // This allows you to see a text string for a bus, which at times, might
  4. // help out in debugging.  This is not intended for synthesis, of course.
  5. // Keep these funny "string" signals seperate so we can disable them
  6. // at synthesis time and so they never impact the circuit.
  7. //
  8. //
  9. module test;
  10. // Declare a register with enough bits for the ASCII string.
  11. // synopsys translate_off
  12. reg [9*8-1:0] string_signal; // **** FOR TESTING
  13. // synopsys translate_on
  14. // Here's the *real* circuit signal
  15. reg [3:0] shift_register;
  16. reg clk, reset;
  17. // Here's the real circuit
  18. always @(posedge clk)
  19.    if (reset) shift_register <= 4'b0001;
  20.    else       shift_register <= {shift_register[2:0], shift_register[3]};
  21. // Now we assign to our string signal based on the real signal.
  22. // Disable this code when synthesizing.
  23. //   
  24. // synopsys translate_off
  25. always @(shift_register)
  26.    case (shift_register)
  27.       4'b0001: string_signal <= "BIT  ZERO";
  28.       4'b0010: string_signal <= "BIT   ONE";
  29.       4'b0100: string_signal <= "BIT   TWO";
  30.       4'b1000: string_signal <= "BIT THREE";
  31.       default: string_signal <= "?????????";                  
  32.    endcase
  33. // synopsys translate_on
  34. initial begin
  35.    clk =  0;
  36.    forever begin
  37.       #10 clk = ~clk;
  38.    end
  39. end
  40. initial begin
  41.    reset = 0;
  42.    #2 reset = 1;  
  43.    #13 reset = 0;
  44.    #200;
  45.    $finish;
  46. end
  47. // Generate VCD file for viewing.
  48. //
  49. // Once we are in the Waveform Viewer, just set the format of 'string_signal'
  50. // to ASCII!
  51. //
  52. initial begin
  53.    $dumpfile ("test_string_signal.vcd");
  54.    $dumpvars (0,test);   
  55. end
  56.    
  57. endmodule