ToB企服应用市场:ToB评测及商务社交产业平台

标题: wire和reg型变量的组合使用 [打印本页]

作者: 八卦阵    时间: 2024-5-15 15:13
标题: wire和reg型变量的组合使用
模型功能

模型框图

`timescale 1ns / 1ps
/*
  1. */
  2. // *******************************************************************************
  3. // Company: Fpga Publish
  4. // Engineer: FP
  5. //
  6. // Create Date: 2024/03/24 12:39:43
  7. // Design Name:
  8. // Module Name: verilog_demo
  9. // Project Name:
  10. // Target Devices: ZYNQ7010 | XCZU2CG | Kintex7
  11. // Tool Versions: 2021.1 || 2022.2
  12. // Description:
  13. //         *
  14. // Dependencies:
  15. //         *
  16. // Revision: 0.01
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. // *******************************************************************************
  21. module verilog_demo #(
  22.     //mode
  23.     parameter MD_SIM_ABLE = 0,
  24.     //number
  25.     parameter NB_DELAY_CLK = 100,
  26.     //width
  27.     parameter WD_ERR_INFO = 4
  28.    )(
  29.     //! system signals
  30.     input           i_sys_clk   ,  
  31.     input           i_sys_resetn,  
  32.     //! @virtualbus uart_interface @dir out
  33.     output          m_uart_0_mtx, //! uart master tx
  34.     input           m_uart_0_mrx, //! uart master rx
  35.     //! @end
  36.     //! error info feedback
  37.     output   [WD_ERR_INFO-1:0]  m_err_verilog_info1
  38. );
  39. //========================================================
  40. //function to math and logic
  41. //========================================================
  42. //localparam to converation and calculate
  43. //========================================================
  44. //register and wire to time sequence and combine
  45. // ----------------------------------------------------------
  46. // demo variable
  47. reg        [1:0] r_dat0 = 0;
  48. reg signed [1:0] r_dat1 = 0;
  49. wire       [1:0] w_dat2;
  50. reg        [1:0] r_fifo [0:1]
  51. wire       [1:0] w_array [0:1];
  52. //========================================================
  53. //always and assign to drive logic and connect
  54. //========================================================
  55. //module and task to build part of system
  56. //========================================================
  57. //expand and plug-in part with version
  58. //========================================================
  59. //ila and vio to debug and monitor
  60. endmodule
  61.               
  62. /* end verilog
复制代码
   */
实现步骤


  1.    FDCE #(
  2.       .INIT(1'b0),            // Initial value of register, 1'b0, 1'b1
  3.       // Programmable Inversion Attributes: Specifies the use of the built-in programmable inversion
  4.       .IS_CLR_INVERTED(1'b0), // Optional inversion for CLR
  5.       .IS_C_INVERTED(1'b0),   // Optional inversion for C
  6.       .IS_D_INVERTED(1'b0)    // Optional inversion for D
  7.    )
  8.    FDCE_inst (
  9.       .Q(Q),     // 1-bit output: Data
  10.       .C(C),     // 1-bit input: Clock
  11.       .CE(CE),   // 1-bit input: Clock enable
  12.       .CLR(CLR), // 1-bit input: Asynchronous clear
  13.       .D(D)      // 1-bit input: Data
  14.    );
复制代码





最闭幕果


[code]module adder_cascade#(    parameter NB_CASCADE = 4,    parameter WD_DAT = 4     )(    input i_clk,    input  [WD_DAT-1:0] a,    output [WD_DAT-1:0] s,    output [WD_DAT*NB_CASCADE-1:0] o_dat    );wire [WD_DAT-1:0] a_array [0:NB_CASCADE]; //add 1 bit for inputreg [WD_DAT-1:0] r_fifo [0:NB_CASCADE-1]; //add 1 bit for inputassign a_array[0] = a;assign s = a_array[NB_CASCADE];generate genvar i;for(i = 0; i < NB_CASCADE; i = i + 1)    begin: FOR_NB_CASCADE        adder #(            .WD_DAT(WD_DAT)        )u_adder(            .a(a_array),            .s(a_array[i+1])        );        always@(posedge i_clk)        begin            r_fifo




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4