FPGA的冷思考:如何摆脱只会看代码而不会写代码的宿命?
2017-04-24 17:11
344 查看
明德扬至简设计法设计的16位复数乘法器,比一般乘法器更加节省乘法器资源。
本案例节选明德扬fpga培训班中的练习,代码简洁,欢迎比较学习。潘老师基于至简设计法的案例,绝不是世面上乱七八糟的代码,我们的代码简 单清晰,一步一步设计,是让你学习FPGA的最佳选择。
一、功能描述
在FPGA中乘法器占用的资源比较多,所以为了想办法尽可能减少这一资源,本案例采用了三个实数乘法器完成四个实数乘法器才能完成的复数乘法。
本案例实现16位复数乘法器的功能。
二、平台效果图
仿真效果图
三、实现过程
输入输出信号列表如下:
有复数p、a和b,且p=ab,有:
p=pr+pi=ab=(ar+ai)(br+bi)
其中:
pr=arbr-aibi=ar(br+bi)-(ar+ai)bi
pi=arbi+aibr=ar(br+bi)+(ai-ar)br
以此通过增加加法,节省了一个乘法器,实现了节省乘法器的16位复数乘法。
代码资料下载:http://pan.baidu.com/s/1eS1hGFS
本案例节选明德扬fpga培训班中的练习,代码简洁,欢迎比较学习。潘老师基于至简设计法的案例,绝不是世面上乱七八糟的代码,我们的代码简 单清晰,一步一步设计,是让你学习FPGA的最佳选择。
一、功能描述
在FPGA中乘法器占用的资源比较多,所以为了想办法尽可能减少这一资源,本案例采用了三个实数乘法器完成四个实数乘法器才能完成的复数乘法。
本案例实现16位复数乘法器的功能。
二、平台效果图
仿真效果图
三、实现过程
输入输出信号列表如下:
信号名 | I/O | 位宽 | 说明 |
clk | I | 1 | 系统工作时钟50M |
rst_n | I | 1 | 系统复位信号,低电平有效 |
vld_in | I | 2 | 输入有效指示信号 |
ar | I | 16 | 输入数据ar |
ai | I | 16 | 输入数据ai |
br | I | 16 | 输入数据br |
bi | I | 16 | 输入数据bi |
qr | O | 32 | 输出数据qr |
qi | O | 32 | 输出数据qi |
vld_out | O | 1 | 输出有效指示信号 |
p=pr+pi=ab=(ar+ai)(br+bi)
其中:
pr=arbr-aibi=ar(br+bi)-(ar+ai)bi
pi=arbi+aibr=ar(br+bi)+(ai-ar)br
以此通过增加加法,节省了一个乘法器,实现了节省乘法器的16位复数乘法。
代码资料下载:http://pan.baidu.com/s/1eS1hGFS
相关文章推荐
- 对《如何加快C++代码的编译速度的几种技巧》文中提到的方法进行思考
- CPLD/FPGA/Verilog_如何写代码减少逻辑单元的使用数量
- VS2005 不会自动的代码提示了?如何解决?
- CPLD/FPGA/Verilog_如何写代码减少逻辑单元的使用数量
- iOS项目工程结构,数据流思想和代码规范 工程结构架构,减少耦合混乱以及防治需求大改造成结构重构,如何构建稳定可扩展可变换的工程结构的思考
- 学习FPGA verilog的心得--编程技巧--如何写代码减少逻辑单元的使用数量
- 代码民工--------不加思考的重复劳动是其宿命的根源
- CPLD/FPGA/Verilog_如何写代码减少逻辑单元的使用数量
- 如何提高FPGA敲代码的速度?
- 如何编写高质量代码的思考
- FPGA verilog的编程心得---如何写代码减少逻辑单元的使用数量?
- 在项目开发中,jsp页面不会少了,如何公用页面(添加页面和修改页面)和公用样式代码(css,js)?
- FPGA verilog的编程心得---如何写代码减少逻辑单元的使用数量?
- 如何优化FPGA资源例子——我是如何两行代码搞成800行的
- 不会写代码,如何从零学习Android开发?
- 如何保持代码格式?
- access如何用代码在“默认值”里实现自动编号?单据流水号生成问题。
- 如何用CSC.exe来编译Visual C#的代码文件
- 《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换皮肤的
- 如果只修改部分代码如何避免整个工程重新编译