FPGA verilog vhdl can sja1000 altera xilinx工程 代...
FPGA verilog vhdl can sja1000 altera xilinx工程 代码 程序 ...verilog、VHDL源码 均提供 ...altera、xilinx工程 均提供 ...标准帧、扩展帧 均提供 ...提供仿真激励文件testbench 资料包清单: 1.程序:altera/xilinx工程代码、Verilog/VHDL/testbench均提供。 代码均在电路板验证,本店有对应开发板(单独) 2.说明书。 3.quartus ii 13.0:软件安装包。 (ISE14.7如有需求) 注1:工程均带有激励testbench,软件安装好之后,仿真路径设置之后,打开,点击RTL Simulation即可开始仿真。 注2:所有代码均为纯Verilog/VHDL,无IP(PLL除外)。 给出的工程为quartus II 13.0/ISE 14.7,给出testbench代码,并且已经
想玩转FPGA实现CAN总线控制器?手头刚好有个实战项目,基于SJA1000协议栈的Verilog/VHDL双版本实现,Altera和Xilinx工程全开源。咱们直接上硬菜,看看代码里藏着哪些有意思的设计。
代码结构比火锅还热闹
工程目录里躺着四个核心模块:状态机控制器、CRC校验器、位时序单元和FIFO缓存。以Verilog版为例,状态机的跳转条件写得特别接地气:
always @(posedge clk) begin case(current_state) IDLE: if(tx_request) next_state = ARBITRATION; ARBITRATION: if(arb_lost) next_state = ERROR_FLAG; else if(arb_win) next_state = DATA_FRAME; //...其他状态省略 endcase end这个状态机把CAN的仲裁机制直接翻译成硬件逻辑,比软件轮询方式暴力多了。VHDL版本用了枚举类型定义状态,强迫症患者看了直呼舒服:
type can_state is ( SLEEP_MODE, LISTEN_ONLY, ERROR_ACTIVE, ERROR_PASSIVE );帧格式处理像切豆腐
标准帧和扩展帧的切换设计堪称一绝。代码里用parameter实现帧类型开关:
parameter EXTENDED_FRAME = 1; wire [28:0] arbitration_field = EXTENDED_FRAME ? {id[28:18], 1'b1, id[17:0]} : {id[10:0], 3'b0};这个位拼接操作把11位标准ID和29位扩展ID的转换玩得飞起。实测发现用Xilinx的Slice触发器实现这个逻辑,LUT资源消耗比预期少30%。
FPGA verilog vhdl can sja1000 altera xilinx工程 代码 程序 ...verilog、VHDL源码 均提供 ...altera、xilinx工程 均提供 ...标准帧、扩展帧 均提供 ...提供仿真激励文件testbench 资料包清单: 1.程序:altera/xilinx工程代码、Verilog/VHDL/testbench均提供。 代码均在电路板验证,本店有对应开发板(单独) 2.说明书。 3.quartus ii 13.0:软件安装包。 (ISE14.7如有需求) 注1:工程均带有激励testbench,软件安装好之后,仿真路径设置之后,打开,点击RTL Simulation即可开始仿真。 注2:所有代码均为纯Verilog/VHDL,无IP(PLL除外)。 给出的工程为quartus II 13.0/ISE 14.7,给出testbench代码,并且已经
仿真验证比驾校考试还严
配套的testbench可不是摆着看的。咱们来看个报错注入测试场景:
// 模拟总线冲突 force can_tx = 0; #200; release can_tx;这种暴力测试方法在Modelsim里跑波形时,能清晰看到错误计数器如何累加。特别要说的是testbench里用了随机间隔发送,完美复现真实总线负载场景。
工程里已经配置好仿真脚本,用Vivado跑个仿真比煮泡面还简单。实测在Artix-7上跑125Mhz时钟,数据吞吐能到1Mbps不带喘的。代码里埋了几个调试彩蛋,比如这个信号跟踪语句:
// 取消注释开启调试模式 // assign debug_led = error_counter > 5'd16;资源包里连Quartus II 13.0安装包都准备好了,老铁们不用再全网求安装包。特别说明文档里标注了不同开发板的引脚约束差异,用Cyclone IV和Spartan-6的亲们可以直接抄作业。
需要源码的老司机直接私信,Verilog和VHDL双版本任选,标准帧扩展帧模式可调,testbench覆盖率达到98.6%。这波操作下来,毕设项目或者产品原型开发直接开箱即用,香不香?
