EDN China > 技术文章 > EDA工具与服务 > EDA工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

对C语言编程者的Verilog开发指南实例

Altera公司?? 2010年04月09日 ?? 收藏0

?  ?清单3所示的verilog PWM实现在本例中是作为Altera的Nios处理器系统的外围电路进行测试的,可以利用前文所述的C结构通过软件对它访问。Altera的SOPC Builder创建了宏,可以使ModelSim(明导资讯公司的一个硬件仿真器)中的协同仿真。在系统执行C代码时可以利用ModelSim仿真器观察到PWM信号以及其它系统信号的行为。

  清单4给出了用于产生图1所示PWM波形的C代码。C代码向PWM寄存器写入数据,创建出周期为5个时钟周期、脉宽为4个时钟周期的PWM输出信号。请注意在波形的开始处,由于period和pulse_width寄存器都被写入了数据,cs和wr_n信号被证实了二次(在写period寄存器时地址信号为低电平,在写pulse_width寄存器时地址信号变成了高电平)。

  清单4:用于产生图1所示PWM波形的测试软件。

  void

  main(void)

  {

  PWM * const pLED=...

  pLED->period=5;

  pLED->pulse_width=4;

  asm("nop");

  asm("nop");

  asm("nop");

  pLED->pulse_width=2;

  }

  在寄存器中写入新值后,pwm_output信号开始反映出变化。然后,只加入一些时延我们再看输出,一些NOP指令被C代码执行了。最终,脉宽变为2个周期,PWM波形相应也有了变化,但周期仍保持为5个时钟周期。

  设计嵌入式系统架构时最好将系统分成硬件和软件二大模块,以便充分利用各自的优势。随着开发工具的不断发展,软件和硬件模块的相互交换也变得越来越透明。

  一旦充分理解了本文讨论的概念和内容,也就掌握了在FPGA上开发硬件的技能。FPGA能被用作微处理器系统中的一个存储器映射式外围电路,可以通过简单的编程实现接口。由于用硬件实现算法的速度快得多,将算法从软件转换成硬件可以极大地提高系统性能。这就是人们常说的硬件加速,掌握这一技术是熟练使用可编程逻辑器件中被有效实现的可配置处理器的关键。从长远来看,即使是软件工程师也能通过硬件加速提高系统性能和效率。


上一页12345下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

C语言? FPGA? PWM?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈