byteman  1.3 (Build #225)
Bitstream relocation and manipulation tool
XS7_Input.cpp
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2022 Kristiyan Manev (University of Manchester)
3  *
4  * Licensed under the Apache License, Version 2.0(the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 
17 #include<string>
18 #include<stdexcept>
19 #include<fstream>
20 
21 #include "XilinxSeries7.h"
22 #include "../../../Common/FileIO.h"
23 #include "../../../Common/str.h"
24 
25 using namespace std;
26 
27 void XilinxSeries7::readBitstream(string filename)
28 {
29  ifstream fin (filename, ifstream::binary);
30  if(!fin.good())
31  throw runtime_error(string("Could not open file: \"").append(filename).append("\" .\n"));
32  log("Reading Xilinx Series 7 bitstream from file \"" + filename + "\"");
33 
34  if(str::iff::stringEndsWith(filename, ".bit"))
35  readBitstreamBIT(fin);
36  else if(str::iff::stringEndsWith(filename, ".bin"))
37  readBitstreamBIN(fin);
38  else if(str::iff::stringEndsWith(filename, ".rbd"))
39  readBitstreamRBD(fin);
40  else
41  throw runtime_error(string("Unknown Xilinx Series 7 file format tried to be read.\n"));
42  fin.close();
43  log("Xilinx Series 7 bitstream file \"" + filename + "\" read successfully.");
44 }
void readBitstream(std::string)
Definition: XS7_Input.cpp:27
void readBitstreamBIN(std::ifstream &fin)
Definition: inlineInput.h:346
void readBitstreamRBD(std::ifstream &fin)
Definition: inlineInput.h:379
void readBitstreamBIT(std::ifstream &fin)
Definition: inlineInput.h:334
bool stringEndsWith(std::string checkedString)
Returns false. End of recursion for template.
Definition: iff.h:32