文档详情

明德扬点拨FPGA高手进阶 第五章 verilog快速掌握 5.4 模块设计举例.pdf

发布:2017-05-28约小于1千字共3页下载文档
文本预览下载声明
5.4 模块设计举例 练习:将下面模块用 verilog 描述出来。 首先为该模块起一个名称,如 mul_module ,该模块一共有clk ,rst_n ,mul_a , mul_b 和 mul_result 信号。因此模块名和端口列表可以写成: 接下来是端口声明,指出端口方向和位宽。由图中可知 clk ,rst_n 是输入信号并 且是 1 位位宽;mul_a 是输入信号并且是 4 位位宽;mul_b 是输入信号并且是 3 位位 宽;mul_result 是输出信号并且是 7 位位宽。因此端口声明可写成: 接下来是描述出图中的电路。 该电路可以认为由两部分组成,一个乘法器和一个 D 触发器。 乘法器的输入是 mul_a 和 mul_b ,输出未命名。我们可以起一个名称,如 mul_result_tmp ,因此该乘法的代码如下: D 触发器的时钟是 clk ,复位信号是rst_n ,输入是mul_result_tmp ,输出是 mul_result。因此代码如下: 组合逻辑的乘法器和 D 触发器也可以组成写在一起,这也是我们最常用的写法, 则上面两段代码变为: 我们还要对信号的类型进行定义,指明是 wire 还是 reg 类型和位宽。需要定义的 信号包括 clk ,rst_n ,mul_a ,mul_b ,mul_result_tmp 和 mul_result。其中 mul_result_tmp 和 mul_result 都是由本模块的 always 产生的,因此需要定义为 reg 型, 其位宽都为 7。而clk ,rst_n ,mul_a ,mul_b 是输入信号,因此是 wire 型。 最后补充上 endmoule ,至此整个模块的设计完毕。 以上文章出自明德扬点拨FPGA 高手进阶,版权归明德扬所有,如需转载,请注明明德扬, 谢谢!
显示全部
相似文档