本文主要是介绍【FPGA设计】Verilog实现简单的总线轮训仲裁器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从小父亲就教育我,要做一个对社会有用的人!
//下面这个是以输入信号作为状态机的转移条件,写得比较冗余:
//
// Verilog Module demo1_lib.bus_arbitor.arch_name
//
///
// Discription:
// Bus Polling Arbitor (BPA)
// 总线上挂3个信号A,B,C,仲裁信号grant[1:0]。
// grant[1:0]=2’b00 A获得总线
// grant[1:0]=2’b01 B获得总线
// grant[1:0]=2’b10 C获得总线
// 总线轮询算法 a.如果当前只有一个信号请求,则处理.
// b.如果没有请求,那么A获得总线.// c.如果同时有多个信号请求,考虑上一个请求信号,(ab ba) (bc cb) (ac ca) (abc acb bca)
// 如果上一个请求信号是A,那么轮询的是BCA,
// 如果上一个请求信号是B,那么轮询的是CAB,
// 如果上一个请求信号是C,那么轮询的是ABC
//
`resetall
`timescale 1ns/10ps
module bus_arbitor(clk_i , en_i , sig_a_i , sig_b_i , sig_c_i , grant_o);// I/O definitioninput clk_i ;input en_i ;input sig_a_i ;input sig_b_i ;input
这篇关于【FPGA设计】Verilog实现简单的总线轮训仲裁器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!